首先,我们需要模仿内存不足:具体查看http://blog.csdn.net/weizongwei5/article/details/50515719
,提供几种模仿系统不足的方式。目前使用命令行方式,
adb shell am kill 包名
需要保证该应用目前处于后台进程,否则会失效
Android端代码
public class MainActivity extends AppCompatActivity {
private static final String TAG ="MainActivity";
private String saveState;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState!=null){
//跳转到广告页,看需求来定
startActivity(new Intent(this,SplashActivity.class));
saveState = savedInstanceState.getString("StrTest");
Log.e(TAG,"销毁后保存的值 :"+saveState);
}
setContentView(R.layout.activity_main);
TextView tv =
(TextView) findViewById(R.id.tt);
tv.setText(saveState+"");
}
/**
* tip:请使用一个参数的方法,需要和你oncreate方法的参数对应上,否则失效
* @param outState
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
//保存数据
outState.putString("StrTest","SaveData");
super.onSaveInstanceState(outState);
}
/**
* onRestoreInstanceState被调用的前提是,activity A“确实”被系统销毁了,
* 而如果仅仅是停留在有这种可能性的情况下,则该方法不会被调用,例如,当正在显示activity A的时候,
* 用户按下HOME键回到主界面,然后用户紧接着又返回到activity A,
* 这种情况下activity A一般不会因为内存的原因被系统销毁,故activity A的onRestoreInstanceState方法不会被执行
* @param savedInstanceState
*/
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
String StrTest = savedInstanceState.getString("StrTest");
Log.e(TAG,"onRestoreInstanceState :"+StrTest);
super.onRestoreInstanceState(savedInstanceState);
//跳转到广告页,看需求来定
startActivity(new Intent(this,SplashActivity.class));
}
}