Android Activity 生命周期再验证

Android Activity 生命周期再验证_第1张图片

分以下几种情况讨论activity生命周期回调函数的调用顺序:

正常打开app,然后按Back键退出

从Home键最近打开app菜单进入

正常打开app,然后按Home键返回桌面,再次进入app

从activity A跳转到activity B,然后按Back键返回activity A

从activity A打开activity B(Theme.Dialog等),然后按Back键关闭activity B

从activity A打开Dialog,然后关闭Dialog

从activity A打开AlertDialog,然后关闭AlertDialog

来电activity覆盖

从桌面widget启动activity

1.桌面图标启动App,按Back键返回:

onCreate()

onStart()

onResume()

【Back键按下】

onPause()

onStop()

onDestroy()

2.长按Home按键,从最近程序中点击图标进入

与情况1相同。

3.启动App,按Home按键,然后再点击图标进入

onCreate()

onStart()

onResume()

【Home键按下】

onPause()

onStop()

【再次进入Ap】

onRestart()

onStart()

onResume()

4.新Activity全部覆盖,back退出新Activity

A oncreate()

A onstart()

A onResume()

【启动B】

A onPause()

B onCreate()

B onStart()

B onResume()

A onStop()

【从B Back】

B onPause()

A onActivityResult()

A onRestart()

A onStart()

A onResume()

B onStop()

B onDestroy()

【从A Back】

A onPause()

A onStop()

A onDestroy()

5.新Activity部分覆盖,back退出新Activity

A onCreate()

A onStart()

A onResume()

【启动B】

A onPause()

B onCreate()

B onStart()

B onResume()

【从B Back】

B onPause()

A onActivityResult()

A onResume()

B onStop()

B onDestroy()

6.普通Dialog部分覆盖

同下面AlertDialog

7.AlertDialog部分覆盖

onCreate()

onStart()

onResume()

【显示AlertDialog】

【关闭AlertDilaog】

在AlertDialog出现以及消失的过程中,没有触发任何onXXX事件。

8.来电覆盖

等同新Activity全覆盖

9.桌面控件intent启动

9.1.目标Activity未启动

等同桌面图标直接启动,会直接启动一个新Activity。

9.2.目标Activity已经启动并且在最上层

如果目标Activity是由桌面控件触发的,那么等同情况3,不会创建新Activity。

如果目标Activity是由Launcher图标启动的,那么会不停的创建新Activity。

9.3.目标Activity已经启动但是不在最上层

如果目标Activity是由桌面控件启动的,那么不会创建新Activity,但也不会把目标Activity提到最上层。

如果目标Activity是由Launcher图标启动的,那么会不停的创建新Activity。

你可能感兴趣的:(Android Activity 生命周期再验证)