1:我们知道,生命周期回调都是 AMS 通过 Binder 通知应用进程调用的;而弹出 Dialog、Toast、PopupWindow 本质上都直接是通过 WindowManager.addView() 显示的(没有经过 AMS),所以不会对生命周期有任何影响。
2:如果是启动一个 Theme 为 Dialog 的 Activity , 则生命周期为: A.onPause -> B.onCrete -> B.onStart -> B.onResume 注意这边没有前一个 Activity 不会回调 onStop,因为只有在 Activity 切到后台不可见才会回调 onStop;而弹出 Dialog 主题的 Activity 时前一个页面还是可见的,只是失去了焦点而已所以仅有 onPause 回调。
dialog 弹框时activity生命周期调用过程
这个问题,分两部分
- 在普通activity弹框dialog,activity的onPause方法会被调用吗?----》什么都不会发生
- activity a中给dialog视图设置事件,再启动一个a,activity生命周期如何?----》
前一个activity会调用onPause, 第二个activity会调用onCreate, onStart, onResume, 接着调用第一个activity的onSaveInstance ,onStop