我在以下网站上阅读了一篇文章
[http://developer.android.com/training/basics/activity-lifecycle/starting.html]
在该部分中,"将活动摧毁"
"大多数应用程序不需要实现此方法,因为本地类引用随活动一起销毁,并且您的活动应在onPause()和onStop()期间执行大多数清理。但是,如果您的活动包括您在onCreate()期间创建的后台线程或其他长时间运行的资源(如果未正确关闭可能会泄漏内存),则应在onDestroy()期间将其终止。"
谢谢。
答案 0 :(得分:0)
1. Does this instance is null during onDestroy()?
正在执行非静态方法的对象实例不能为null。也就是说,Activity
实例(由this
引用)不会为空。 Activity
的该实例的字段可能为空,具体取决于它们是否已分配或未分配。
2. What does this mean "long-running resources" ? For example, you mean the imageview?
'长期运行的资源'指的是可能超过Activity
生命周期的事物。这包括异步执行的任何Thread
或AsyncTask
,可能会超出Activity
的存在。
这也可能意味着当你将Activity
(或者保留对Activity
的引用 - 像非静态内部类一样)传递给与生活无关的外部对象时 - Activity
的循环。例如,如果您将Runnable
发布到Handler
并延迟较长,那么Runnable
的引用会返回Activity
(如匿名实例),应确保从onDestroy中的Runnable
中删除Handler
(或之前可能)。
3. Do I need to null the global during onDestroy()?
我不确定你在这里问的是什么。但是如果你指定一个'全局'或静态字段来引用Activity
,这通常是一个坏主意,所以是的,将它指定为null(或完全删除它)。否则,您将使用该引用泄露Activity
(GC将无法释放内存)。