好的,我已经阅读了关于 Activity 生命周期的部分,但是我仍然没有得到一些东西。为什么onDestroy()
在我的应用程序中被调用,当我切换到在我的手机上运行的另一个应用程序时,或者当我点击主页按钮时。
根据我的阅读,onPause()
当应用程序失去焦点时被调用。
系统调用此方法作为用户离开您的活动的第一个指示(尽管它并不总是意味着活动正在被销毁);它表示活动不再在前台(尽管如果用户处于多窗口模式,它可能仍然可见)。使用 onPause() 方法暂停或调整在 Activity 处于暂停状态时不应继续(或应适度继续)并且您希望很快恢复的操作。
OnStop()
我也得到:
当您的活动不再对用户可见时,它已进入停止状态,并且系统调用 onStop() 回调。例如,当新启动的活动覆盖整个屏幕时,可能会发生这种情况。系统也可以在活动完成运行并即将终止时调用 onStop()。
但是,我不明白,为什么onDestroy()
也会被调用。
onDestroy() 在活动被销毁之前被调用。系统调用此回调是因为:1) 活动正在完成(由于用户完全关闭活动或由于在活动上调用了 finish()),或 2) 系统由于配置而暂时销毁活动改变(如设备旋转或多窗口模式)。
首先,我没有完成我的应用程序,也没有调用finish()
. 其次,我知道没有配置更改。
希望有人可以提供帮助。
仅供参考:我的应用程序 extends Activity
,使用 multiple Threads
,有一个扩展SurfaceView
和实现的类SurfaceHolder.Callback
,使用 anIntentService
和 a ContentProvider
。除此之外,没有什么特别的。
PS:当我关掉屏幕的时候,onDestroy()
是不会调用的。
PPS:我不是在寻找一个臭的解决方法。我想了解发生了什么以及为什么。