1.保存Activity状态
onSaveInstanceState(Bundle outState) 在Activity onStop()状态之前被执行,用来保存系统的状态。
package com.alvin.testactivity;
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;
import android.widget.EditText;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private static final String CONTENT = "content"; //定义常量
private Button btn1 = null;
private EditText txt = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if(savedInstanceState != null && savedInstanceState.containsKey(CONTENT)) {//判断是否保存了状态
String str = savedInstanceState.getString(CONTENT);
txt.setText(str);
}
btn1 = (Button)findViewById(R.id.btn1);
btn1.setOnClickListener(listener);
txt = (EditText)findViewById(R.id.txt);
Log.i(TAG, "MainActivity-->onCreate");
}
private OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
Button btn = (Button)v;
Intent intent = new Intent();
switch (btn.getId()) {
case R.id.btn1:
intent.setClass(MainActivity.this, SencondActivity.class);
break;
}
startActivity(intent);
}
};
protected void onSaveInstanceState(Bundle outState) { //在退出前保存状态
super.onSaveInstanceState(outState);
String str = txt.getText().toString();
outState.putString(CONTENT, str);
}
}