Android API 24:拆分屏幕 - 活动在销毁时不会启动堆栈的活动

时间:2016-12-30 07:39:28

标签: java android android-activity android-7.0-nougat split-screen

我一直在努力解决这个问题。这个错误发生在罕见但很可能的情况下,我只是无法找到为什么会发生这种情况。

会发生什么:

在分屏模式下(我的应用程序位于顶层,另一个位于底部),当某个活动退出时,后台堆栈活动(在我的情况下,主要是MainActivity)onStart()永远不会被调用,并且分屏模式看起来它已经结束,因为我的应用程序已经死了,但是概览按钮看起来仍然处于分屏模式,当我点击分屏按钮时,我的MainActivity的onStart()最终被调用,并且它再次回到分屏模式。

日志看起来像

MainActivity onStop() ProblematicActivity onCreate() ... ProblematicActivity onDestroy() //and nothing!

在这些情况下,会发生:

  1. 在非分屏模式下调用有问题的活动时,但在分屏模式下完成。 (resumedpaused
  2. 当在分屏模式下调用有问题的活动时,我的应用程序被点击(即,我的活动处于resumed状态)
  3. 仅在以下情况下发生:

    1. 有问题的活动以分屏模式启动,我的活动未被点击(即我的活动处于paused状态)
    2. 我已经彻底检查了活动生命周期回调(至少我是这么认为)并多次查看日志,但我无法弄清楚为什么不调用BackStack活动。

      我尝试过搜索,但没有太多有用的信息。有没有人有类似我的经验/问题?

      感谢。

      其他信息

      我的活动堆栈看起来像这样

      MainActivity
      活动2
      活动1
      片段1

      服务器发送我的应用程序以启动一个功能,然后它启动活动2,它启动活动1,而碎片1处于活动1(用户真正看到的是片段1)活动&在Activity2之前,碎片被很好地破坏了。但是从那里开始,MainActivity(或者无论它是什么活动)都是不可见的,因为AndroidSystem从不调用onStart

1 个答案:

答案 0 :(得分:0)

事实证明这是Android OS中的一个缺陷。

Google的回复如下

  

您好,
  我们已将此缺陷传递给开发团队,并将在更新信息时更新此问题   感谢

问题链接:

https://code.google.com/p/android/issues/detail?id=231337&can=1&q=reporter%3Aadobecs5&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened