搜索了很久,但是没有找到解决我的问题的结果。因此,我最终发帖请求协助。
我有两个应用程序,都是我编写的。应用程序A启动应用程序B,通过Intent.putExtra()传递参数。当应用程序B被启动时,这个过程完美地进行,参数也被很好地传递了。
然而,我找不到一种方法来返回响应给应用程序A。使用startActivityForResult()总是立即返回onActivityResult(),并且其结果为RESULT_CANCELED。经过进一步检查,logcat给出了一个警告,指出“Activity正在作为新任务启动,因此取消活动结果”。
我尝试使用不同的启动模式、操作筛选器(android.intent.action.PICK)来创建应用程序B的Activity,但是我所做的一切都没有改变任何东西。
我是在试图做不可能的事情吗?从我所理解的来看,我所尝试的应该类似于使用第三方活动从设备的照片库中选择图片。
编辑:
好的,我尝试删除Activity B中的LAUNCHER类别,但仍然无法解决问题。以下是我的Activity:
我有两个应用程序,都是我编写的。应用程序A启动应用程序B,通过Intent.putExtra()传递参数。当应用程序B被启动时,这个过程完美地进行,参数也被很好地传递了。
然而,我找不到一种方法来返回响应给应用程序A。使用startActivityForResult()总是立即返回onActivityResult(),并且其结果为RESULT_CANCELED。经过进一步检查,logcat给出了一个警告,指出“Activity正在作为新任务启动,因此取消活动结果”。
我尝试使用不同的启动模式、操作筛选器(android.intent.action.PICK)来创建应用程序B的Activity,但是我所做的一切都没有改变任何东西。
我是在试图做不可能的事情吗?从我所理解的来看,我所尝试的应该类似于使用第三方活动从设备的照片库中选择图片。
编辑:
好的,我尝试删除Activity B中的LAUNCHER类别,但仍然无法解决问题。以下是我的Activity:
<activity android:name=".${CLASSNAME}" android:label="@string/app_name" android:configChanges="mcc|mnc|locale|keyboardHidden|orientation" android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.PICK" />
</intent-filter>
</activity>
有人真正让这个工作了吗?我开始怀疑启动另一个应用程序的活动永远不会返回结果,因为无论您在“intent-filter”中放置什么,它似乎总是会启动一个新任务。
this.setResult(Activity.RESULT_OK, data);
在第二个Activity中返回到第一个。 - FoamyGuy