在Activity没有完全被杀死之前(按键HOME,有其他Activity覆盖原来的activity)时,会调用onSaveInstanceState方法
以下模拟代码中,无法调到其中想模拟的段落,代码中有注释,请有接触的朋友给于解答,可以的话,给出模式的条件代码,在此感谢!
package com.example.and_test0822;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
Button MainBt;
Button goNextBt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG,"onCreate " + savedInstanceState);
if(savedInstanceState != null){ //无法模拟到这段
String id = savedInstanceState.getString("ID");
int age = savedInstanceState.getInt("age");
Log.i(TAG,"id " + id + " age " + age);
}
MainBt = (Button) findViewById(R.id.MainBt);
MainBt.setOnClickListener(listener);
goNextBt = (Button) findViewById(R.id.goNextBt);
goNextBt.setOnClickListener(listener);
}
OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.MainBt:
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
break;
case R.id.goNextBt:
Intent it = new Intent(MainActivity.this,NextActivity.class);
startActivity(it);
break;
}
}
};
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState); //无法模拟到这段
Log.i(TAG,"onRestoreInstanceState 调用2 " + savedInstanceState);
if(savedInstanceState != null){
String id2 = savedInstanceState.getString("ID");
int age2 = savedInstanceState.getInt("age");
Log.i(TAG,"id2 " + id2 + " age2 " + age2);
}
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.i(TAG,"onStart ");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.i(TAG,"onRestart ");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.i(TAG,"onResume ");
}
@Override
protected void onPostResume() {
// TODO Auto-generated method stub
super.onPostResume();
Log.i(TAG,"onPostResume ");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
Log.i(TAG,"outState 调用 " + outState);
outState.putString("ID", "1");
outState.putInt("age", 20);
Log.i(TAG,"outState 调用 " + outState);
//finish();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.i(TAG,"onPause ");
finish();
System.gc();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG,"onDestroy ");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
Log.i(TAG,"onActivityResult ");
}
@Override
public View onCreateView(String name, Context context, AttributeSet attrs) {
// TODO Auto-generated method stub
Log.i(TAG,"onCreateView ");
return super.onCreateView(name, context, attrs);
}
}
package com.example.and_test0822;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class NextActivity extends Activity {
private static final String TAG = "MainActivity";
Button MainBt;
Button goFrontBt;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.nextactivity_main);
Log.i(TAG," savedInstanceState2 " + savedInstanceState);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.i(TAG," onResume2 ");
MainBt = (Button) findViewById(R.id.MainBt);
MainBt.setOnClickListener(listener);
goFrontBt = (Button) findViewById(R.id.goFrontBt);
goFrontBt.setOnClickListener(listener);
}
OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.MainBt:
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
break;
case R.id.goFrontBt:
Intent it = new Intent(NextActivity.this,MainActivity.class);
startActivity(it);
break;
}
}
};
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.i(TAG," onStop2 ");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG," onDestroy2 ");
}
}