Activity为singleTask模式时的生命周期

Activity为singleTask模式时的生命周期

Activity A:android:launchMode=“singleTask”
Activity B:launchMode默认

正常场景:
由A切换到B:A–>B
A: onPause B: onCreate–>onStart–>onResume A:onStop

由B回到A:B通过finish方法返回A
B: onPause A: onRestart–>onStart–>onResume B: onStop–>onDestroy

由B回到A:B通过startActivity(Intent)方法,然后B自身调用finish
B: onPause A: onRestart–>onStart–>onResume B: onStop–>onDestroy

特殊场景:
由A切换到B: A–>B,此时B未完全覆盖A,如B为半透明或部分半透明
A: onPause B: onCreate–>onStart–>onResume A:onStop

由B回到A:B通过finish方法返回A
B: onPause A: onRestart–>onStart–>onResume B: onStop–>onDestroy

由B回到A:B通过startActivity(Intent)方法,然后B自身调用finish
B: onPause A: onNewIntent–>onResume–>onPause–>onResume B: onStop–>onDestroy

注:此时A会自动执行两次onResume,第一次执行onResume后自动执行onPause,然后自动再次执行onResume。原因:A跳转到B时,由于B未完全覆盖A,所以A没有执行onStop生命周期。

你可能感兴趣的:(Android,android)