如果 Activity 进入 PictureInPicture 模式,则不会调用 onActivityResult
Posted
技术标签:
【中文标题】如果 Activity 进入 PictureInPicture 模式,则不会调用 onActivityResult【英文标题】:onActivityResult not called if Activity went into PictureInPicture mode 【发布时间】:2019-10-27 03:33:44 【问题描述】:活动
活动A
:内容列表
活动B
:玩家
流程
活动A
==> 活动B
-
活动
A
使用startActivityForResult
启动活动B
Activity B
可能会进入画中画模式
活动B
调用setResult
然后finish
onActivityResult
来自 Activity A
被调用
问题
当 Activity B
进入画中画时,onActivityResult
不会被调用。
我知道 Activity B
在进入画中画时会从 Activity A
的任务堆栈中分离出来,但我希望 startActivityForResult
能够按预期运行。这是一个错误还是预期的?
任何解决方法将不胜感激。另外,我最后的手段是重新做这一切并使用内部广播来传达这两个活动。也欢迎对此发表评论。
谢谢!
【问题讨论】:
这很奇怪,你能发布你的代码吗? 【参考方案1】:我不确定 PIP 模式下的活动是否被视为暂停。 但是多简历功能有一些发展。 要在 android P 中选择加入此行为,请在您的应用清单中添加以下元数据:
<meta-data android:name="android.allow_multiple_resumed_activities" android:value="true" />
你可以阅读这个here。
【讨论】:
确实,Activity 保持在paused
状态,这可能会阻塞对onActivityResult
的调用。但是,我需要一个适用于常规设备的解决方案,而不是折叠设备,也适用于 Android P 之前的设备。谢谢,+1!
正如您所说,目前最好的方法是使用广播,直到 Google 团队处理此问题。 :-)以上是关于如果 Activity 进入 PictureInPicture 模式,则不会调用 onActivityResult的主要内容,如果未能解决你的问题,请参考以下文章