在 Android 中,如何检测我的活动恢复的原因?

2023-12-28

我正在开发一个活动,它可以进行一些自己的状态管理。我试图区分以下 onResume 情况:

  1. 新品上市
  2. 任务切换(home键长按)
  3. 在同一应用程序中进行其他活动后恢复
  4. 睡眠后醒来
  5. 方向改变

活动的意图或其他地方是否有某些东西可以帮助我区分这些?

出于好奇和一些上下文...我想在 4 和 5 上保留我的内部历史堆栈。在情况 2 和 3 上,我将保留相同的当前页面,但删除历史记录(允许正常的后退按钮功能届时接管)。情况 1 将初始化到活动的内部起始页(并且可以在 onCreate 的帮助下轻松检测到)。


活动的意图或其他地方是否有某些东西可以帮助我区分这些?

项目#4 与以下内容无关onResume(), AFAIK.

项目 #5 可以通过以下方式更好地处理android:configChanges and onConfigurationChange()虽然你可以通过返回一些东西来“检测”它onRetainNonConfigurationInstance()看看它是否存在于onResume() via getLastNonConfigurationInstance().

其他情况不仅仅是三种情况,而且可能是两倍,一旦您开始考虑“被踢出内存以释放 RAM”之类的可能性。

即兴地,感觉就像您做出了一些不幸的架构决策(“内部历史堆栈...擦除历史记录...允许正常的后退按钮功能在此时接管”)。 Android 是围绕许多廉价活动而设计的,而您似乎违反了这一规则。欢迎您这样做,但请记住,Android 对您选择的模式的支持可能是有限的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中,如何检测我的活动恢复的原因? 的相关文章

随机推荐