几天前,我被要求写下调用 ondestroy() 而没有调用 onpause() 或 onstop() 的场景。可能吗。如果是,请解释。
最佳答案
如果您尝试下面的代码,您会发现 onDestroy()
确实被调用而 onPause()
和 onStop()
生命周期回调被跳过。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
finish();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.e("MainActivity", "onDestroy");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.e("MainActivity", "onPause");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.e("MainActivity", "onStop");
}
也就是说,如果你在onCreate()
中创建Activity的时候调用finish()
,系统会调用onDestroy()
直接。
关于在没有 onpause() 或 onstop() 的情况下调用 ondestroy() 的 Android 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27578708/