Android 中的活动在以下情况下会被销毁,但不会销毁整个进程:
当活动被另一个活动覆盖时,该活动会停止并进入停止状态。如果系统需要更多的内存,则可以将该活动销毁,但进程仍将保持活动状态。
当设备配置更改(如屏幕方向)时,活动将销毁并重新启动。但是,进程仍将保持活动状态。
当活动调用了 finish() 方法时,该活动将被销毁。但是,如果进程中仍有其他活动,则进程将继续运行。
以下是一个简单的代码示例,演示了在 Activity 的生命周期方法中如何检测活动是否被销毁:
public class MainActivity extends AppCompatActivity {
private boolean isDestroyed = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("MainActivity", "onCreate");
}
@Override
protected void onStart() {
super.onStart();
if (isDestroyed) {
// 活动被销毁
Log.d("MainActivity", "Activity is destroyed.");
} else {
// 活动未被销毁
Log.d("MainActivity", "Activity is not destroyed.");
}
}
@Override
protected void onDestroy() {
super.onDestroy();
isDestroyed = true;
Log.d("MainActivity", "onDestroy");
}
}