扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一、Activity 的launchMode(运行模式)共有4种,分别是:standard,singleTop,singleTask, singleInstance
10余年专注成都网站制作,企业网站制作,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于企业网站制作,高端网页制作,对电动窗帘等多个行业,拥有多年的网站营销经验。1 、standard:(备注:standard是系统默认的启动模式。)
标准启动模式,每次激活Activity 时都会创建Activity,并放入任务栈中。如果启动此Activity的Intent中没有设置FLAG_ACTIVITY_NEW_TASK标志,则这个Activity与启动他的Activity在同一个Task中,如果设置了Activity请参考上面FLAG_ACTIVITY_NEW_TASK的详细说明,“launchMode”设置为"standard"的Activity可以被实例化多次,可以在Task中的任何位置,对于一个新的Intent请求就会实例化一次.
2 、singleTop:
如果在任务的栈顶正好存在该Activity 的实例,就重用该实例,而不会创建新的Activity 对象,不过它会调用onNewIntent()方法。如果栈顶部不存在就会创建新的实例并放入栈顶(即使栈中已经存在该Activity 实例,只要不在栈顶,都会创建实例)。如果启动此Activity 的Intent中没有设置FLAG_ACTIVITY_NEW_TASK标志, 则这个Activity 与启动他的Activity在同一个Task中, 如果设置了Activity 请参考上面FLAG_ACTIVITY_NEW_TASK的详细说明, “launchMode”设置为"singleTop"的Activity可以被实例化多次,可以在Task中的任何位置,对于一个新的Intent请求如果在Task栈顶,则会用栈顶的Activity响影Intent请求,而不会重新实例化对象接收请求,如果没有在栈顶,则会实例化一个新的对象接收Intent请求.
3 、singleTask:
如果在栈中已经有该Activity 的实例,就重用该实例(会调用实例的onNewIntent ())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。和s ingleTop在名字上即可看出区别,即s ingleTop每次只检测当前栈顶的activity是否是我们需要请求创建的,而singleTask则会检测栈中全部的Activity 对象,从上向下,如果检测到是我们所请求的则会消灭此Activity 对象上面的对象,直接把检测到的我们需要的Activity 置为栈顶。“launchMode”设置为" singleTask"的Activity总是在栈底,只能被实例化一次,它允许其它Activity压入"singleTask"的Activity 所在的Task栈,如果有新的Intent请求有此标志的Activity ,则系统会清除有此标志的Task栈中的全部Activity,并把此Activity显示出来.
4 、singleInstance:
在一个新栈中创建该Activity 实例,并让多个应用共享该Activity 实例。一旦这种模式的Activity实例存在于某个栈中,任何应用再激活这个Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。此启动模式和我们使用的浏览器工作原理类似,在多个程序中访问浏览器时,如果当前浏览器没有打开,则打开浏览器,否则会在当前打开的浏览器中访问。此模式会节省大量的系统资源,因为他能保证要请求的Activity对象在当前的栈中只存在一个。“launchMode”设置为”singleInstance”的Activity总是在栈底,只能被实例化一次,不允许其它的Activity压入”singleInstance”的Activity 所在Task栈,即整个Task栈中只能有这么一个Activity .
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流