【发布时间】:2016-05-11 19:16:26
【问题描述】:
长话短说:我目前正在开发一款小型安卓游戏。一项功能是能够更改应用程序主题。当用户更改主题时,会在整个应用程序中广播一个事件,并且所有活动的活动都会调用 recreate() 来应用新主题。
问题: 假设有一堆活动:A、B、C。所有活动都将按照它们打开的顺序接收事件并调用 recreate()。这些是将被调用的生命周期事件(按顺序):
- Activity A 将调用 onDestroy()、onCreate()、onStart()、onResume() 和 onPause()
- Activity B 将调用 onDestroy()、onCreate()、onStart()、onResume() 和 onPause()
- Activity C 将调用 onPause()、onStop()、onDestroy()、onCreate()、onStart()、onResume()。
请注意,活动 A 或 B 均未调用 onStop()。 当这些活动被返回时(例如按下后退按钮),它们变得可见时不会调用 onStart(),而是会调用 onResume()。这与活动生命周期文档中的规定相反。
问题:我在这里做错了吗?是否有另一种方法可以在不破坏 Activity 生命周期的情况下重新启动应用程序中的所有 Activity?
【问题讨论】:
标签: android android-activity android-lifecycle