gpt4 book ai didi

android - 如何让外部 Activity 的 startActivityForResult 工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:29 24 4
gpt4 key购买 nike

对于我的问题,搜索高点和低点都没有结果。因此,我终于发帖请求一些帮助。

我有两个应用程序,都是我写的。 App A 启动 App B,通过 Intent.putExtra() 传入参数。当应用程序 B 启动时,这工作得很好,参数传递得很好。

但是,我找不到向应用程序 A 返回响应的方法。使用 startActivityForResult() 总是给我即时 onActivityResult() 和 RESULT_CANCELED。进一步检查后,logcat 给了我一条警告,指出“Activity 正在作为新任务启动,因此取消 Activity 结果”。

我尝试使用不同的启动模式、操作过滤器 (android.intent.action.PICK) 制作 App B 的 Activity,但我所做的一切都没有改变。

我是在尝试做不可能的事情吗?据我了解,我正在尝试做的事情应该类似于使用第三方 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>

有人真的让这个工作了吗?我开始怀疑启动另一个应用程序的 Activity 永远不会返回结果,因为无论您在“intent-filter”中放入什么,它似乎总是会启动一个新任务。

最佳答案

确保您要启动的 Activity 没有在 list 中设置 android:launchMode,并检查 android:taskAffinity 是否未被使用。看这里:

http://developer.android.com/guide/topics/manifest/activity-element.html#aff

确保您用于启动 Activity 的 Intent 没有设置 FLAG_ACTIVITY_NEW_TASK。看这里:

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK

特别注意:“当调用者请求正在启动的 Activity 的结果时,不能使用此标志。”

如果该 Activity 作为新任务的一部分启动,则 Android 将立即调用带有 RESULT_CANCELED 的 onActivityResult(),因为一个任务中的 Activity 无法将结果返回到另一个任务,只有同一任务中的 Activity 可以这样做.

关于android - 如何让外部 Activity 的 startActivityForResult 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11919259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com