【问题标题】:Android N: My app call onDestroy() when entering multi-windows modeAndroid N:进入多窗口模式时,我的应用程序调用 onDestroy()
【发布时间】:2019-03-09 04:20:46
【问题描述】:

先生们,

我做了一个全新的项目并添加了

 "android:resizeableActivity="true"

在 manifest.xml 中。

然后在生命周期方法中添加日志(onStart(), onResume(), onStop()...)

之后,使用模拟器在 Android N(API 24)(6.x) 上运行我的应用。

我发现当我的应用在前面时,长按最近按钮进入多窗口模式,日志打印出来

onPause()->onStop()->onDestroy()->onStart()->onResume()->onPause()

正确吗?或者我会犯错吗?

如果正确,我是否可以检测应用程序是否真的结束或进入onDestroy() 中的多窗口模式?

这样,在进入多窗口模式时,我可以防止某些对象被破坏。

【问题讨论】:

  • 好的。我发现我可以检查Activity.inMultiWindow() 以了解这一点,并且应用程序必须在更改多窗口模式时重新启动。太糟糕了!

标签: android


【解决方案1】:

将 screenLayout 添加到 manifest.xml 中的 android:configChanges 应该可以解决问题。

【讨论】:

  • 谢谢,兄弟。我稍后再试试:)
【解决方案2】:

对我有用的唯一方法是 screenLayoutsmallestScreenSizemanifest.xml 中设置为 android:configChanges

【讨论】:

    【解决方案3】:

    来自文档:

    注意:要处理所有与多窗口相关的配置更改,请使用 “screenLayout”和“smallestScreenSize”。多窗口是 在 Android 7.0(API 级别 24)或更高版本中受支持。

    因此,你应该使用

            android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize"
    

    在您的 <activity 清单中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多