第8章 Activity与Activity调用栈分析

1.Activity启动和销毁过程

OnDestory()中,因为引用会在Activity销毁的时候销毁,而线程不会,所以清除开启的线程

2.Activity的暂停和恢复过程

OnPause():释放系统资源,如Camara,sensor,receivers

3.一个Task任务栈中的Activity可以来自不同的App,同一个App的Activity也可能不在一个Task中

4.使用singleTask模式来退出整个应用:
将主Activity设为singleTask模式,然后在要退出的Activity中转到主Activity,从而将主Activity之上的Activity都清除,然后重写主Activity的OnNewIntent()方法,在方法中加上一句finish(),将最后一个Activity结束掉。

5.关于singleTop,跟singleInstance启动模式特殊说明
如果在一个singleTop或singleInstance的ActivityA中通过startActivityForResult()启动另一个ActivityB,那么系统将直接返回Activity.RESULT_CANCLED而不会再去等待返回。这是犹豫系统在Framework层做了对这两种启动模式的限制,因为Android开发者认为,不同Task之间,默认是不能传递数据的,如果一定要传递,那就只能通过Intent来绑定数据

6.Intent Flag启动模式

Intent.FLAG_ACTIVITY_NEW_TASK
改flag通常使用在从Service中启动Activity的场景,由于在Service中并不存在Activity栈,所以使用该Flag来创建一个新的Activity栈,并创建Activity实例

7.清理任务栈 Manifest文件中标签中使用
clearTaskOnLanch
finishOnTaskLanch
alwayRetainTaskState

你可能感兴趣的:(第8章 Activity与Activity调用栈分析)