Android中的Activity四种启动模式(launchMode)(面试必问)

android:launchMode
standard
默认标准的启动模式,每次startActivity(Intent intent)请求都创建一个新的activity实 例,适用于大多数场景。

singleTop
单一顶部,如果要启动的activity在任务栈的顶部已经存在,不会创建新的实例,而是调用 onNewIntent(Intent intent)方法。比如:浏览器书签,避免顶部的activity重复创建,解 决用户体验问题。

singleTask
单一任务,activity只会在任务栈里面存在一个实例,如果要激活的activity在任务栈中已 经存在,就不会创建新的activity实例,而是复用这个已经存在的activity,调用 onNewIntent(Intent intent)方法,并且清空当前activity任务栈上面所有的activity。 比如:浏览器activity,整个任务栈里面只有一个实例,节约内存和CPU。 activity还是运行在当前应用程序的任务栈里面,不会创建新的任务栈。

singleInstance 单例模式
单一实例,整个Android系统只有一个实例存在,不同的应用打开这个activity共享公共的同 一个actiivty,它单独运行在一个独立的任务栈里面,任务栈里面只有它一个实例存在。
比如:呼叫来电界面InCallScreen

两种实现方式
1.在manifest文件里面添加
  
2.在intent里面设置标签
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

本文摘抄子我的老师的笔记.....加以修改

(曹老师)曹伟github网址:https://github.com/caoweic




你可能感兴趣的:(android)