如果是当前Activity弹出的dialog则不会执行Activity任何生命周期中的方法, 只有其它Activity弹出了Dialog或者切换Activity才会执行onPause() 。
关于Activity的生命周期的解释:
-
启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
-
当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
-
当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
-
当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
-
用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
-
当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
-
用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
当Activity 或fragment向另一个activity跳转,或者从activity后退前一个activity的某个fragment 中, 经常用intent 传一个值来判断要跳转的位置,如果需要清空intent 传的值话,一般都是采取 xIntent.removeExtra(flag),这个flag是Intent.putStringExtra(flag)中的flag的值,这个是从跳转后的Activity写入的。