这个问题真的,很不好回答,但是 log
可以说明一切了。我在每个回调方法里面都是打印一句log
里面就打印一句输出。其他的事情也不做。点击事件,打印一句 log
,并且去启动第二个 activity
。
W/LogUtils: ScaleImageActivity.onCreate(ScaleImageActivity.java:15): create.............
W/LogUtils: ScaleImageActivity.onStart(ScaleImageActivity.java:36): start.....
W/LogUtils: ScaleImageActivity.onResume(ScaleImageActivity.java:42): resume........
W/LogUtils: ScaleImageActivity$1.onClick(ScaleImageActivity.java:20): click............
W/LogUtils: ScaleImageActivity.onPause(ScaleImageActivity.java:48): pause....
E/ContentCatcherManager: failed to get ContentCatcherService.
W/LogUtils: FinalActivity.onStart(FinalActivity.java:32): start.....
W/LogUtils: FinalActivity.onResume(FinalActivity.java:38): resume........
W/LogUtils: ScaleImageActivity.onStop(ScaleImageActivity.java:54): stop....
W/LogUtils: FinalActivity.onPause(FinalActivity.java:44): pause....
W/LogUtils: ScaleImageActivity.onRestart(ScaleImageActivity.java:30): restart....
W/LogUtils: ScaleImageActivity.onStart(ScaleImageActivity.java:36): start.....
W/LogUtils: ScaleImageActivity.onResume(ScaleImageActivity.java:42): resume........
W/LogUtils: FinalActivity.onStop(FinalActivity.java:50): stop....
W/LogUtils: FinalActivity.onDestroy(FinalActivity.java:56): destroy....
这里的 aActivity
就是 ScaleImageActivity
,bActivity
就是 FinalActivity
。
生命周期的回调时机,输出已经完全说明了。这里要注意一点 onRestart
在 b 退出,回到 a 的时候会首先回调,这个方法一般用来判断是不是第一次进入当前界面。(该方法被调用,说明并不是第一次了)