Activity LaunchMode
Mainfest.xml
<activity
android:launchMode = "singleTask"
1.standard标准模式
默认模式,每次启动都会创建新的实例,onCreate,onStart,onResume都会被调用。谁启动了这个Activity,这个Activity就运行在启动它的那个Activity所在的栈中。
2.singleTop
如果已经位于栈顶,则不会被创建,onCreate,onStart并不会被调用。如果不在栈顶,仍然会新创建。
singleTop适合接收通知启动的内容显示页面。例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的。
App程序中(或浏览器中)保存的书签,假如用户看到一个界面保存自己喜欢的标签,假如要保存10个,这个时候用户在返回键的时候,则会返回10次才能返回到App应用中, Android下singleTop 则解决该问题。
3.singleTask
如果不在栈顶,会把所有上面的全部出栈。
singleTask适合作为程序入口点。例如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。
如果一个App中,有一个功能需要加载网页内容,打开一个browserActiviy现在网页内容,则内存开销非常大,首先要初始化webkit /c++ 嵌入式浏览器内核broweractivity 配置了singleTask,空间换时间,使用该模式可以节省内存开销。
4.singleInstance
实际上启动了一个新的栈,由于栈内复用特性,后续请求均不会创建新的activity,除非这个任务栈被系统销毁。假如B是singleInstance。当A启动B时,新开了一个栈。B又启动C时,C会在A上面。这样当C按BACK时,会看到栈下面的A。然后A再按BACK,因为其栈已经清空,此时会看到B。
singleInstance适合需要与程序分离开的页面。例如闹铃提醒,将闹铃提醒与闹铃设置分离。singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A -> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。
App各种词典,向有道词典,什么金山词典,说极端是因为不想被放置到同一个任务栈里面,它是全局的系统程序应用,达到节省内存的使用目的。
参考http://bbs.9ria.com/thread-258213-1-1.html
相关推荐
Android Activity LaunchMode
Android Activity 加载模式 测试
这个文章《Android启动模式浅析》中用到的例子代码,希望需要的朋友可以去下载。
NULL 博文链接:https://mypyg.iteye.com/blog/919643
Activity 的启动模式(android:launchMode) Android Activity 的四种启动模式 管理Activity的生命周期 Android入门:Activity四种启动模式 Android Intent Android中Intent传递对象的两种方法...
NULL 博文链接:https://kevindan.iteye.com/blog/1991346
<activity android:name=".MainActivity"android:launchMode="standard" /> Activity的四种启动模式: 1.standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 2.singleTop 如果在...
Activity是Android最常用的组件之一,也是最直观的组件,Activity启动时有四种模式,分别是: “standard” "singleTop" "singleTask" "singleInstance" 其中"standard"是默认模式。
主要介绍了Android开发中Activity的四种launchMode,launchMode主要用于控制多个Activity间的跳转,需要的朋友可以参考下
详细测试生命周期的流程、通过demo反应launchMode的作用,onActivityResult方法的使用。
之前遇到了onActivityResult提前调用的问题,说是和activity的启动模式有关,就做了一个Demo将四种启动方式都测试了一下,里面包括 onActivityResult的使用以及在四种不同启动模式下使用效果的不同情况
2 设置入口activity的启动模式android:launchMode="singleTask",重写onNewIntent方法, 在退出activity时,设置intent.setAction("exit_app");然后跳转到栈底activity, 这样就可以清除栈底之外的所有activity,...
Android笔记之四种launchMode例程,Activity有四种加载模式: standard singleTop singleTask singleInstance
1、设计界面,包括四个按钮,两个文本框。单击对应按钮可以启动对应activity。假定Activity A为启动...2、修改 Activity 的启动模式 LaunchMode,并通过 Log 信息来体会不同启动模式所对应的Activity 和 task 的关系
目的: 1. 掌握activity组件生命周期函数的用法 2. 掌握使用intent实现activity之间的跳转 ...2、修改 Activity 的启动模式 LaunchMode,并通过 Log 信息来体会不同启动模式所对应的 Activity 和 task 的关系
包括2个应用程序,每个应用程序有2个activity,可以相互启动。通过修改launchmode可以进行测试。
Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=””设置。 一、启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的...
本文实例讲述了Android编程中Activity的四种启动...设置Activity的启动模式,只需要在AndroidManifest.xml里对应的<activity>标签设置android:launchMode属性,例如: <activity android:name=.A1 android:launch
我们今天要讲的是Activity的四种launchMode。 launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里...