1、强制回收
当系统内存不足时, activity会被回收,可以重写onSaveInstanceState()方法。onSaveInstanceState()方法传入一个Bundle类型的参数, 可以将数据存储到这个Bundle对象中, 这样即使activity被系统摧毁, 当用户重新启动这个activity而调用它的onCreate()方法时, 这个Bundle对象会作为实参传递给onCreate()方法, 这样就可以从Bundle对象中取出保存的数据, 然后利用这些数据将activity恢复到被摧毁之前的状态,如:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
String str= "缓存数据";
outState.putString("str", str);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
String getStr= savedInstanceState.getString("str");
}
}
当从从后台强杀时:
1.1:当前仅有一个activity,这时候,强杀,是会执行onDestroy方法的;
1.2:栈里面的第一个没有销毁的activity会执行ondestroy方法,其他的不会执行。
从Mainctivity跳转到ActivityA(继续从ActivityA再跳转到ActivityB),
这时候,从后台强杀,只会执行Mainactivity的onDestroy方法,ActivityA(以及ActivityB)的onDestroy方法都不会执行;