首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活动onDestroy混淆

活动onDestroy混淆
EN

Stack Overflow用户
提问于 2014-01-26 16:13:31
回答 4查看 415关注 0票数 1

到目前为止,我所理解的是,如果onDestroyonStop处于后台,而系统需要删除内存,那么ActivityonStop(蜂巢之后)就不会总是被调用。

如果onDestroyonStop通常是完成的话,Activity总是会被调用的。

例如,我在onCreate中的静态字段中添加了一个侦听器,并在onDestroy中删除了该侦听器。现在有两件事可以发生。

  • 如果应用程序被系统和系统破坏,则终止其进程。因此,静态字段中的所有侦听器都将消失。
  • 如果应用程序正常完成,那么它将从onDestroy中删除自己的侦听器。

对吧?我知道android只杀死进程,但是有什么条件是android只杀死活动(而不调用onDestroy)而不是进程?

EN

回答 4

Stack Overflow用户

发布于 2014-01-26 16:16:15

当您调用finish()时,活动将被销毁,而不是整个过程。

票数 0
EN

Stack Overflow用户

发布于 2014-01-26 16:30:09

在生命周期部分的activity 文档中,请看表1,它总结了活动生命周期的回调方法。

有一个专栏叫做“后杀”?在onDestroy方法中,可以杀死的是是的。

列的标签是“可杀人后?”指示系统是否可以在方法返回后的任何时候杀死承载该活动的进程,而不执行活动的另一行代码.

这意味着,如果android扼杀了进程,那么您在onDestroy方法中使用的代码根本不需要。

如果被称为破坏,您的活动将被从堆栈中移除,并且不管怎么说,都是免费的垃圾收集,其中的所有资源都是仅由活动引用的。

只有当系统资源不足(内存、cpu时间等)并决定终止您的活动/应用程序或在您的活动上调用finish()时,才会调用onDestroy()。

票数 0
EN

Stack Overflow用户

发布于 2014-01-26 16:34:03

这是完成过程的另一种方法。在manifest.xml中:

代码语言:javascript
复制
<activity android:name=".Name" android:noHistory="true" ... />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21365881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档