onStop:不一定会执行/马上执行
A拉起B,正常生命周期顺序:A.onPause() -> B.onCreate() -> B.onStart() -> B.onResume() -> A.onStop()
如果B是透明页面:A.onPause() -> B.onCreate() -> B.onStart() -> B.onResume()
如果B进入后就主线程繁忙(如动画):A.onPause() -> B.onCreate() -> B.onStart() -> B.onResume() -> (10s后) -> A.onStop()
A拉起B后迅速回到A:A.onPause() -> B.onCreate() ->(B.finish()) -> A.onResume() -> B.onDestroy()
A拉起B拉起C,C主线程崩溃:
A.onPause() -> B.onCreate() -> B.onStart() -> B.onResume() -> A.onStop()
-> B.onPause() -> C.onCreate() -> C.onStart() -> C.onResume() -> B.onStop()
-> (C crash in main),进程死亡 -> (新进程)B.onCreate() -> B.onStart() -> B.onResume()
A拉起B拉起C, C子线程崩溃:
A.onPause() -> B.onCreate() -> B.onStart() -> B.onResume() -> A.onStop()
-> B.onPause() -> C.onCreate() -> C.onStart() -> C.onResume() -> B.onStop()
-> 概率性回调C.onPause() -> (C crash in main),进程死亡 -> (新进程)B.onCreate() -> B.onStart() -> B.onResume()
onDestroy:不一定会执行
A拉起B,B拉起C,此时退到后台,进程列表上滑杀后台:只有A的onDestroy执行,BC不执行(注意释放资源问题)
Android12上行为变更,不会杀死,而是退到后台
其他情况:看各定制厂商的修改了