到目前为止,我所理解的是,如果onDestroy和onStop处于后台,而系统需要删除内存,那么Activity和onStop(蜂巢之后)就不会总是被调用。
如果onDestroy和onStop通常是完成的话,Activity总是会被调用的。
例如,我在onCreate中的静态字段中添加了一个侦听器,并在onDestroy中删除了该侦听器。现在有两件事可以发生。
onDestroy中删除自己的侦听器。对吧?我知道android只杀死进程,但是有什么条件是android只杀死活动(而不调用onDestroy)而不是进程?
发布于 2014-01-26 16:16:15
当您调用finish()时,活动将被销毁,而不是整个过程。
发布于 2014-01-26 16:30:09
在生命周期部分的activity 文档中,请看表1,它总结了活动生命周期的回调方法。
有一个专栏叫做“后杀”?在onDestroy方法中,可以杀死的是是的。
列的标签是“可杀人后?”指示系统是否可以在方法返回后的任何时候杀死承载该活动的进程,而不执行活动的另一行代码.。
这意味着,如果android扼杀了进程,那么您在onDestroy方法中使用的代码根本不需要。
如果被称为破坏,您的活动将被从堆栈中移除,并且不管怎么说,都是免费的垃圾收集,其中的所有资源都是仅由活动引用的。
只有当系统资源不足(内存、cpu时间等)并决定终止您的活动/应用程序或在您的活动上调用finish()时,才会调用onDestroy()。
发布于 2014-01-26 16:34:03
这是完成过程的另一种方法。在manifest.xml中:
<activity android:name=".Name" android:noHistory="true" ... />https://stackoverflow.com/questions/21365881
复制相似问题