Activity 生命周期

来源:互联网 发布:素描自学软件 编辑:程序博客网 时间:2024/04/29 00:02

1.Activity 首次启动: 

onCreate()  ---> onStart() ---> onResume() --->


2.在Activity被覆盖时,比如启动了Dialog主题的Activity) [*状态栏拉下和Toast,Alert不算...]

onSaveInstanceState() ---> onPause() --->

4.0+ : onPause() --> onSaveInstanceSate() --->


3.提示框关闭回到Activity时

onResume()-->


4.Activity已经完全不可见(比如跳转或者按下Home键) [*状态栏拉下和Toast,Alert不算...]

onSaveInstanceState() ---> onRause() ---> onStop() -->

4.0+ : onRause() ---> onSaveInstanceState() ---> onStop() -->


5.回到Activity时

onRestart() ---> onStart() ---> onResume() --->


6.如果是已startActivityForResult()启动

onActivityResult() ---> GOTO: 6.


7.执行了finish().

onPause() ---> onStop() ---> onDestroy()--->


8.如果没有处理横屏/竖屏,

Bundle 以下简称 b; 如果 != null 小写b ;如果 ==null 大写B;

onCreate(B) --->---> ... ---> 屏幕被旋转 ---> onSaveInstanceState() ---> GOTO:7. ---> onCreate(b) --> onStart() ---> onRestoreInstanceState(b) ---> onResume() -->


目前知道的就这些~,

源码在此.

public class SaveRestoreState extends Activity {// 首次启动 onCreate// 屏幕发生变化或者内存耗尽时..// onSaveInstanceState// onCreate// onRestoreInstanceState@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.d(MainAct.TAG, "onCreate");// getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,// WindowManager.LayoutParams.FLAG_BLUR_BEHIND); //背景玻璃效果Button button = new Button(this);button.setText("Click me. | Long click Me.");setContentView(button);button.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {Intent i = new Intent(SaveRestoreState.this,SaveRestoreState.class);startActivityForResult(i, 0);}});button.setOnLongClickListener(new View.OnLongClickListener() {public boolean onLongClick(View v) {// new AlertDialog.Builder(SaveRestoreState.this)// .setTitle("Title")// .setPositiveButton(android.R.string.ok, null).show();Intent i = new Intent(SaveRestoreState.this,CustomDialogAct.class); // 这个是 Them.Dialog 的ActivitystartActivityForResult(i, 0);return false;}});if (savedInstanceState != null) {// 第一次启动时空Log.d(MainAct.TAG, savedInstanceState.toString());// Log.d(MainAct.TAG, savedInstanceState.getString("key"));}}@Overrideprotected void onSaveInstanceState(Bundle outState) {Log.d(MainAct.TAG, "onSaveInstanceState");// outState.putString("key", "ok.");super.onSaveInstanceState(outState);}@Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {Log.d(MainAct.TAG, "onRestoreInstanceState");// Log.d(MainAct.TAG, savedInstanceState.getString("key"));super.onRestoreInstanceState(savedInstanceState);}@Overrideprotected void onStart() {Log.d(MainAct.TAG, "onStart");Log.d(MainAct.TAG, "this :" + this);super.onStart();}@Overrideprotected void onRestart() {Log.d(MainAct.TAG, "onRestart");super.onRestart();}@Overrideprotected void onResume() {Log.d(MainAct.TAG, "onResume");super.onResume();}@Overrideprotected void onPause() {Log.d(MainAct.TAG, "onPause");super.onPause();}@Overrideprotected void onStop() {Log.d(MainAct.TAG, "onStop");super.onStop();}@Overrideprotected void onDestroy() {Log.d(MainAct.TAG, "onDestroy");super.onDestroy();}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {Log.d(MainAct.TAG, "onActivityResult");super.onActivityResult(requestCode, resultCode, data);}}




原创粉丝点击