Activity的LaunchMode情景思考


1. 有哪几种类型?分别有什么用?
standard,创建一个新的Activity。
singleTop,栈顶不是该类型的Activity。创建一个新的Activity。否则。onNewIntent。


singleTask,回退栈中没有该类型的Activity,创建Activity,否则,onNewIntent+ClearTop。


singleInstance,回退栈中,仅仅有这一个Activity,没有其它Activity。

Activity的LaunchMode情景思考_第1张图片

2. 应用场景怎样?
singleTop适合接收通知启动的内容显示页面。

比如,某个新闻client的新闻内容页面。假设收到10个新闻推送。每次都打开一个新闻内容页面是非常烦人的。
singleTask适合作为程序入口点。
比如浏览器的主界面。无论从多少个应用启动浏览器,仅仅会启动主界面一次。其余情况都会走onNewIntent,而且会清空主界面上面的其它页面。
singleInstance适合须要与程序分离开的页面。

比如闹铃提醒。将闹铃提醒与闹铃设置分离。

singleInstance不要用于中间页面。假设用于中间页面, 跳转会有问题。比方:A -> B (singleInstance) -> C。全然退出后,在此启动。首先打开的是B。

3. TaskAffinity对LaunchMode的影响
不指定TaskAffinity,singleTask会在默认的task 中运行。这个符合预期,一般也都是这么用的,不须要指定。
不指定TaskAffinity。singleInstance之后启动的页面不能放倒singleInstance所在那个task中,会放倒默认的task中,只是一般singleInstance也不适合作为程序中间页。
这篇文章对taskaffinity的解释是不坏。这满足,但我真的没用过。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的:(launchMode)