2

我正在开发一个 Activity 来做一些自己的状态管理。我试图区分以下 onResume 案例:

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

Activity 的意图或其他地方有什么东西可以帮助我区分这些吗?

对于好奇和一些上下文......我想在 4 和 5 上保留我的内部历史堆栈。在案例 2 和 3 上,我会保留相同的当前页面,但删除历史(允许正常的后退按钮功能在那一点上接管)。案例 1 将初始化到活动的内部起始页面(并且可以在 onCreate 的帮助下很容易地检测到)。

4

1 回答 1

1

Activity 的意图或其他地方有什么东西可以帮助我区分这些吗?

onResume()项目 #4 与AFAIK无关。

项目 #5 会更好地处理 via android:configChangesonConfigurationChange()尽管您可以通过从中返回一些东西onRetainNonConfigurationInstance()并查看它是否存在于onResume()via中来“检测”它getLastNonConfigurationInstance()

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

袖手旁观,感觉就像您做出了一些不幸的架构决定(“内部历史堆栈......擦除历史......允许正常的后退按钮功能在那个时候接管”)。Android 是围绕大量廉价活动而设计的,而你似乎违反了这条规则。欢迎您这样做,但请记住,Android 对您选择的模式的支持可能会受到限制。

于 2010-08-24T23:41:44.067 回答