Android 启动模式 之 singleTask

android:launchMode="singleTask"--------挺好

设置了SingleTask这种存在方式,Android中它维持一个Activity堆栈(注意是Activity堆栈,不是java中说的堆栈)中的Activity都是独一无二的,就是说同一个Activity实例不会重复创建。

singleTask 我觉得是个怪胎,A页面 设置了singleTask ,B页面同时也设置了singleTask ,问题来了,是不是如上所说同一个Activity实例不会重复创建???
其实是这样的,如果该Activity设置了这种launchMode,那么该Activity没有创建一切都好,但是如果已经创建,该Activity比较霸道,会将堆栈来个釜底抽薪,凡是覆盖在其上层的Activity都会被销毁。

A 页面先设置的 singleTask B页面 就算你设置了singleTask 也和普通的启动模式一样。(这里只是说 A ->B )

当B 执行Finsh() 时候 A页面 onRestart-> onStart-> onResume-> onPostResume. B页面 onStop-> onDestroy
注意顺序 先执行A页面的逻辑 在结束掉B

当B 执行startActivity()时候 A页面 onNewIntent-> onRestart-> onStart-> onResume-> onPostResume. B页面 onStop-> onDestroy
注意顺序 先执行A页面的逻辑 在结束掉B A页面多了 onNewIntent 这个方法 B页面还是被kill 了
嗯 是这样的 。8

你可能感兴趣的:(Android 启动模式 之 singleTask)