activitydemo.java
package com.wandroide.tw; 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 activitydemo extends Activity { private static final String TAG = "ActivityDemo"; private EditText mEditText = null; private String mString = null; private Button mButton = null; private Button.OnClickListener button_listener = new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(); intent.setClass(activitydemo.this, otheractivity.class); startActivity(intent); } }; /** * 程式一執行就執行onCreate() * 所以初始化工作要在這邊做 * 或 * 當程式執行過onDestory() 被銷毀後 * 再去按此程式 就會進來執行 * 這時候程式還沒顯示在裝置螢幕上*/ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mEditText = (EditText)findViewById(R.id.editText); mButton=(Button)findViewById(R.id.button); mButton.setOnClickListener(button_listener); Log.e(TAG, "----onCreate----"); if( savedInstanceState != null ) { mString = savedInstanceState.getString("EditTextValue"); Log.e(TAG, "====mString =" + mString ); } } /** * 執行完onCreate()後 就會執行onStart() * 或 * 程式執行完onStop()後 再回到此程式 則會執行onRestart()-->onStart() * 這個時候程式介面已經顯示在裝置螢幕上 * 但還無法跟user互動*/ @Override protected void onStart() { super.onStart(); Log.e(TAG, "----onStart----"); if( mString != null ) { mEditText.setText(mString); Log.e(TAG, "====mString =" + mString ); } } /** * 程式執行完onStop()後 再回到此程式 * 則會執行onRestart() */ @Override protected void onRestart() { super.onRestart(); Log.e(TAG, "----onRestart----"); } /** * 執行完onStart()後 就會執行onResume() * 或 * 程式執行完onPause()後 再回到前景 則會執行onResume() * 這個時候程式介面顯示在裝置螢幕上 * 而且可以跟user互動*/ @Override protected void onResume() { super.onResume(); Log.e(TAG, "----onResume----"); } /** * 畫面被另一個activity遮住或遮住一部分 * 就會執行onPause() * 這個時候程式介面顯示在裝置螢幕上 * 但無法跟user互動*/ @Override protected void onPause() { super.onPause(); Log.e(TAG, "----onPause----"); } /** * 執行onPause()後 就會執行onStop() * 這個時候程式介面沒有在裝置螢幕上*/ @Override protected void onStop() { super.onStop(); Log.e(TAG, "----onStop----"); } /** * 執行onStop()後 就會執行onDestory() * 這個時候程式介面沒有在裝置螢幕上*/ @Override protected void onDestroy() { super.onDestroy(); Log.e(TAG, "----onDestroy----"); } /** * 有另一個activity開啟時 會執行onSaveInstanceState() * 若此activity被destory後 再執行此activity * 或 * 切換螢幕方向 Ctrl + F12 則執行此函數 * 且onCreate() 帶著savedInstanceState參數 */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mString = mEditText.getText().toString(); outState.putString("EditTextValue",mString); Log.e(TAG, "----onSaveInstanceState----"); } /** * 切換螢幕方向 Ctrl + F12 * onDestory() --> onCreate(帶著savedInstanceState參數) * --> onStart() --> onRestoreInstanceState(帶著savedInstanceState參數) * --> onResume() */ @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); String myString = savedInstanceState.getString("EditTextValue"); Log.e(TAG, "----onRestoreInstanceState----"); Log.e(TAG, "====myString =" + myString ); } }
otheractivity.java
package com.wandroide.tw; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class otheractivity extends Activity { private static final String TAG = "OtherActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.other); Log.e(TAG, "----other onCreate----"); } @Override protected void onStart() { super.onStart(); Log.e(TAG, "----other onStart----"); } @Override protected void onRestart() { super.onRestart(); Log.e(TAG, "----other onRestart----"); } @Override protected void onResume() { super.onResume(); Log.e(TAG, "----other onResume----"); } @Override protected void onPause() { super.onPause(); Log.e(TAG, "----other onPause----"); } @Override protected void onStop() { super.onStop(); Log.e(TAG, "----other onStop----"); } @Override protected void onDestroy() { super.onDestroy(); Log.e(TAG, "----other onDestroy----"); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Log.e(TAG, "----other onSaveInstanceState----"); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); Log.e(TAG, "----other onRestoreInstanceState----"); } }