按下主页按钮时,活动会被破坏.

Kam*_*one 9 android ondestroy android-activity

在我的应用程序中,当我按下主页按钮时,活动将进行onDestroy().它假设只被称为onPause()方法吗?

为什么会这样?

jcw*_*jcw 12

这取决于您的手机有多少内存,如果您的手机没有太多内存,那么它会破坏活动以立即释放资源.在新手机上,这不会发生,因为它们有足够的备用内存.


小智 10

还要检查您的清单中是否使用了android:noHistory标志

文档:android:noHistory当用户导航活动时,是否应该从活动堆栈中删除活动并完成(调用其finish()方法)并且它在屏幕上不再可见


Ale*_*rlo 6

如果系统受限并且已确定需要释放一些资源,则可以在按下主页按钮时销毁活动.该文件指出,onDestroy()可如果被称为:

这可能是因为活动正在完成(有人称为finish(),或者因为系统暂时销毁此活动实例以节省空间.您可以使用isFinishing()方法区分这两种情况.

另外,请注意系统可以kill在没有调用onDestroy()之后调用您的程序onStop().因此,任何清理/数据持久性代码都应该在onPause()或中onStop().