【问题标题】:onActivityResult not called if Activity went into PictureInPicture mode如果 Activity 进入 PictureInPicture 模式,则不会调用 onActivityResult
【发布时间】:2019-10-27 03:33:44
【问题描述】:

活动

  • 活动A:内容列表
  • 活动B:玩家

流程

活动A ==> 活动B

  1. 活动A 使用startActivityForResult 启动活动B
  2. Activity B 可能会进入画中画模式
  3. 活动B 调用setResult 然后finish
  4. onActivityResult 来自 Activity A 被调用

问题

当 Activity B 进入画中画时,onActivityResult 不会被调用。

我知道 Activity B 在进入画中画时会从 Activity A 的任务堆栈中分离出来,但我希望 startActivityForResult 能够按预期运行。这是一个错误还是预期的?

任何解决方法将不胜感激。另外,我最后的手段是重新做这一切并使用内部广播来传达这两个活动。也欢迎对此发表评论。

谢谢!

【问题讨论】:

  • 这很奇怪,你能发布你的代码吗?

标签: android onactivityresult back-stack picture-in-picture task-management


【解决方案1】:

我不确定 PIP 模式下的活动是否被视为暂停。 但是多简历功能有一些发展。 要在 Android P 中选择加入此行为,请在您的应用清单中添加以下元数据:

<meta-data android:name="android.allow_multiple_resumed_activities" android:value="true" />

你可以阅读这个here

【讨论】:

  • 确实,Activity 保持在paused 状态,这可能会阻塞对onActivityResult 的调用。但是,我需要一个适用于常规设备的解决方案,而不是折叠设备,也适用于 Android P 之前的设备。谢谢,+1!
  • 正如您所说,目前最好的方法是使用广播,直到 Google 团队处理此问题。 :-)
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2013-06-09
  • 2012-11-29
  • 2012-02-08
相关资源
最近更新 更多