在Activity生命周期图中,有一个从“onStop”到“App进程被杀死”再到“onCreate”的箭头。我一直在想,现在我要做一个关于片段的小讲座;如果整个应用程序进程被销毁,如何使onCreate接收来自onStop的bundle呢?系统是否会跟踪已杀死的应用程序及其活动包?我认为这就是它的实现方式,因为此时被杀死的应用程序将没有任何内存分配给它。
另外,在页面“管理Activity生命周期>启动Activity”的最后一段中,“除了以下情况之外,系统在调用了所有情况下的onPause()和onStop()之后才调用onDestroy():...”而该情况并未说明是低内存。这使我认为箭头不应该从onStop指向onCreate,因为“具有更高优先级的应用需要内存”。这是一个错别字还是我的理解有误?我觉得是我的理解有误,因为在“通常情况下,活动生命周期的移动看起来像这样:”图表中有一个“可杀死?”列。
这两者中必定有一个是错误的,无论是活动生命周期图中的箭头还是“除了以下情况之外,系统在调用了所有情况下的onPause()和onStop()之后才调用onDestroy()”语句。希望我没有理解错上下文。
另外,在页面“管理Activity生命周期>启动Activity”的最后一段中,“除了以下情况之外,系统在调用了所有情况下的onPause()和onStop()之后才调用onDestroy():...”而该情况并未说明是低内存。这使我认为箭头不应该从onStop指向onCreate,因为“具有更高优先级的应用需要内存”。这是一个错别字还是我的理解有误?我觉得是我的理解有误,因为在“通常情况下,活动生命周期的移动看起来像这样:”图表中有一个“可杀死?”列。
这两者中必定有一个是错误的,无论是活动生命周期图中的箭头还是“除了以下情况之外,系统在调用了所有情况下的onPause()和onStop()之后才调用onDestroy()”语句。希望我没有理解错上下文。
onDestroy()
可能仍然会被调用。这有点取决于“应用程序管理器”的具体含义。Android中的最近任务列表/概述屏幕和第三方任务管理器应该仍然会导致调用onDestroy()
。但是,在设置中的“强制停止”以及一些预安装的任务管理器(不幸的是)执行“强制停止”将终止进程而不调用onDestroy()
。 - CommonsWare