UMA*_*MAR 27 android ondestroy
我在ListActivity中使用以下代码
// a separate class in project
public class MyActivity extends ListActivity {
// some common functions here..
}
public class SelectLocation extends MyListActivity {
public void onCreate(Bundle savedInstance) {
// here.....
}
@Override
protected void onDestroy() {
super.onDestroy();
if (adap != null) adap = null;
if (list != null) list = null;
System.gc();
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都指导我为什么onDestroy
在我的代码中没有调用方法?
Vla*_*nov 58
onDestroy()
仅当系统资源不足(内存,CPU时间等)时才会调用,并决定终止您的活动/应用程序或者当某人调用finish()
您的活动时.
因此,要测试您的代码(),您可以创建一个测试按钮,该按钮将调用finish()
您的活动.
在这里阅读更多.
此外,我相信你不需要调用所有这些东西,onDestroy()
直到adap不是一个关键资源.甚至在那种情况下,android系统也有适当处理它们的机制.
Jan*_*usz 28
无法保证您的onDestroy方法将被调用.
您根本不需要在onDestroy方法中使用的代码.如果调用destroy,您的acitivity将从堆栈中删除,并且无论如何都可以自由进行垃圾收集,其中包含仅由活动引用的所有资源.System.gc()也应该是糟糕的风格.在Android上,系统几乎总是知道何时是进行垃圾收集的最佳时间.大多数情况下,活动完成垃圾收集会自动触发.只需删除整个onDestroy方法即可.如果您的应用程序的整体内存有问题,则问题出在其他地方.
在大多数手机中按下后退按钮时,会在onStop()和onDestroy()方法中调用两次,但如果不是这种情况,则可以创建一个按钮来调用finish(); 方法.
归档时间: |
|
查看次数: |
69142 次 |
最近记录: |