我有一个应用程序,其中包含许多活动。其中之一是
所以我启动应用程序,
因此,问题是:当(且仅当)应用程序被杀死并恢复时,如何告诉应用程序从
我已经阅读并尝试了来自Activity标签文档的所有内容,但没有符合我的期望。最接近的是
InitialActivity
,它加载核心数据。它是启动器活动,没有加载的数据,下一个活动就无法继续运行。所以我启动应用程序,
InitialActivity
正在加载数据,然后导航到MainActivity
,然后我浏览到一些FarAwayActivity
。然后我切换到其他应用程序(其中一些是重型游戏),我的应用程序在后台被杀死。我在Application.onCreate()
中插入了日志调用,并且当我切换回我的应用程序时,我可以看到它被再次调用。因此,我确定应用程序在后台被杀死。但是Android会将最后一个FarAwayActivity
带到顶部,因为所有加载的数据都为空,它会立即崩溃。因此,问题是:当(且仅当)应用程序被杀死并恢复时,如何告诉应用程序从
InitialActivity
重新开始?类似于“忘记我的后退堆栈”,但可能自动在清单中进行设置。我已经阅读并尝试了来自Activity标签文档的所有内容,但没有符合我的期望。最接近的是
android:clearTaskOnLaunch="true"
,但它在从桌面重新启动应用程序时清除堆栈中的所有其他活动(并且应用程序尚未被杀死,因此所有数据都可用)。为了明确起见,我想在应用程序实际被杀死后仅从InitialActivity开始。
Application.onLowMemory()
和Application.onTrimMemory()
方法,但我怀疑我不能使用它们来清除后台堆栈。据我所知,后台堆栈清理是通过启动一个带有FLAG_ACTIVITY_CLEAR_TOP
标志的单个根Activity
来执行的。因此,在那个时候启动新的Activity
绝对不行。 - Andrew