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); } }