您的位置:首页 > 移动开发 > Android开发

Android---Activity的四种启动模式

2018-01-17 23:28 357 查看
一、standard(标准模式):
无须指定launchMode属性,默认采用standard加载模式。
如:DActivity不断启动自身,不断新建DActivity实例,但TaskID一样,所以不会启动全新的Task;
按返回的时候,逐一从Activity栈顶删除Activity实例;
二、singleTop(Task栈顶单例模式):
指定launchMode=“singleTop”;

如:任务栈中是A---B---C---D,D在栈顶,通过D启动D,则不需要新建D实例,直接复用自己D实例,即调用onNewIntent()方法。且D启动D没有任何反应。
如果当前A---B---C,C启动D就需要创建实例。这里和模式一 一致。
三、singleTask(Task内单例模式):
不能有多个实例的存在,只能有一个实例;
如果当前已经存在D实例,直接复用D实例,即直接调用D的onNewIntent()方法。
(1)D不存在:创建DActivity实例,并放于栈顶;
(2)D存在:
①要启动的D位于栈顶,则直接复用D实例,即直接调用D的onNewIntent()方法;
②D不在栈顶,则将D上面的Activity移除栈顶(将D放于栈顶);
四、singleInstance(全局单例模式):
无论在哪个Task中启动DActivity,都只会创建一个D实例,并启用全新的Task栈加载该DActivity实例;
①存在:无论位于哪个应用程序,哪个Task中,将Activity所在Task转前台,从而使它显示;
②不存在:创建;



更多AndroidiOSPythonJavaMySQL的文章,请点击:http://blog.csdn.net/jamiecheung
更多JavaUnity3D的文章,请点击:http://blog.csdn.net/u010841622
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息