Activity的LaunchMode应用场景思考
2016-03-03 11:39
330 查看
1. 有哪几种类型?分别有什么用?
http://developer.android.com/guide/components/tasks-and-back-stack.html
standard,创建一个新的Activity。
singleTop,栈顶不是该类型的Activity,创建一个新的Activity。否则,onNewIntent。
singleTask,回退栈中没有该类型的Activity,创建Activity,否则,onNewIntent+ClearTop。
singleInstance,回退栈中,只有这一个Activity,没有其他Activity。
2. 应用场景如何?
http://www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode
http://stackoverflow.com/questions/2626218/examples-for-android-launch-modes
singleTop适合接收通知启动的内容显示页面。
例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的。
singleTask适合作为程序入口点。
例如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。
singleInstance适合需要与程序分离开的页面。
例如闹铃提醒,将闹铃提醒与闹铃设置分离。
singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A -> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。
3. TaskAffinity对LaunchMode的影响
http://blog.csdn.net/linmiansheng/article/details/24297375
不指定TaskAffinity,singleTask会在默认的task 中执行,这个符合预期,一般也都是这么用的,不需要指定。
不指定TaskAffinity,singleInstance之后启动的页面不能放倒singleInstance所在那个task中,会放倒默认的task中,不过一般singleInstance也不适合作为程序中间页。
这篇文章对taskaffinity的说明还不错,这个见过,不过自己还真没用过。
http://developer.android.com/guide/components/tasks-and-back-stack.html
standard,创建一个新的Activity。
singleTop,栈顶不是该类型的Activity,创建一个新的Activity。否则,onNewIntent。
singleTask,回退栈中没有该类型的Activity,创建Activity,否则,onNewIntent+ClearTop。
singleInstance,回退栈中,只有这一个Activity,没有其他Activity。
2. 应用场景如何?
http://www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode
http://stackoverflow.com/questions/2626218/examples-for-android-launch-modes
singleTop适合接收通知启动的内容显示页面。
例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的。
singleTask适合作为程序入口点。
例如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。
singleInstance适合需要与程序分离开的页面。
例如闹铃提醒,将闹铃提醒与闹铃设置分离。
singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A -> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。
3. TaskAffinity对LaunchMode的影响
http://blog.csdn.net/linmiansheng/article/details/24297375
不指定TaskAffinity,singleTask会在默认的task 中执行,这个符合预期,一般也都是这么用的,不需要指定。
不指定TaskAffinity,singleInstance之后启动的页面不能放倒singleInstance所在那个task中,会放倒默认的task中,不过一般singleInstance也不适合作为程序中间页。
这篇文章对taskaffinity的说明还不错,这个见过,不过自己还真没用过。
相关文章推荐
- 日语——动词的各种变形
- JS笔记
- VS2010重编译OpenCV2.4.9调试源代码
- leetcode 324. Wiggle Sort II
- 【ASP.NET】六大内置对象
- Linux_嵌入式开发环境搭建
- mysql查询连续时间数据——无数据补0
- [Android 性能优化系列]内存之提升篇--应用应该如何管理内存
- Nutch抓取过程简析
- 移动端web开发技巧汇总
- storyboard代码根据segue 跳转
- 深入理解软件包的配置、编译与安装【转】
- 【微积分】 07 - 微积分的应用
- vs2015 点击cshtml 后提示 "无效指针" 的解决办法
- NFC
- Linux系统中ps命令和gitps命令的使用教程
- iOS关闭键盘的五种方法(总结的很好的博文)
- Android Studio :Error:(1, 0) Plugin is too old, please update to a more recent version, or set AND……
- sqlserver 从txt文件入库
- CU PU TU