26
2017
09

Android不同启动模式下的生命周期

singleTop:栈顶复用模式。如果activity在栈顶,就不用重新创建。

  • 其他activity再次启动它,回调以下方法:
05-17 18:00:26.793: I/TAG(23870): onCreate(savedInstanceState)....
05-17 18:00:26.804: I/TAG(23870): onStart.....
05-17 18:00:26.804: I/TAG(23870): onResume.....
  • 如果在栈顶再次启动自己,则回调以下方法:
05-17 17:52:12.823: I/TAG(21352): onPause.....
05-17 17:52:12.823: I/TAG(21352): onNewIntent(intent).....
05-17 17:52:12.823: I/TAG(21352): onResume.....

singleTask:栈内复用模式。只要activity在一个栈中存在,就不会创建实例。自带clearTop功能,清光在它之上的所有activity。

  • 其他activity再次启动它时,回调以下方法:
05-17 17:56:57.969: I/TAG(22539): onNewIntent(intent).....
05-17 17:56:57.969: I/TAG(22539): onRestart.....
05-17 17:56:57.978: I/TAG(22539): onStart.....
05-17 17:56:57.978: I/TAG(22539): onResume.....
  • 自身启动自身,回调以下方法:
05-17 17:58:12.184: I/TAG(22539): onPause.....
05-17 17:58:12.184: I/TAG(22539): onNewIntent(intent).....
05-17 17:58:12.184: I/TAG(22539): onResume.....

singleInstance:单实例模式。只能单独位于一个任务栈中。

  • 启动自身,回调此方法:
05-17 18:02:09.701: I/TAG(24854): onPause.....
05-17 18:02:09.701: I/TAG(24854): onNewIntent(intent).....
05-17 18:02:09.701: I/TAG(24854): onResume.....
  • 其他activity第一次启动它,回调以下方法:
05-17 18:02:04.787: I/TAG(24854): onCreate(savedInstanceState)....
05-17 18:02:04.790: I/TAG(24854): onStart.....
05-17 18:02:04.790: I/TAG(24854): onResume.....
  • 其他activity再次启动它,回调以下方法:
05-17 18:03:21.662: I/TAG(24854): onNewIntent(intent).....
05-17 18:03:21.662: I/TAG(24854): onRestart.....
05-17 18:03:21.663: I/TAG(24854): onStart.....
05-17 18:03:21.663: I/TAG(24854): onResume.....
上一篇:popwindow弹出后点击外部控件响应点击事件 下一篇:Android性能优化--Inspact Code代码检查