-
Notifications
You must be signed in to change notification settings - Fork 768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2019-03-13:LaunchMode 的应用场景? #4
Comments
|
指定方式有什么用处呢 |
|
为什么要有启动模式? ②singleTop:栈顶复用模式 ③singleTask:栈内复用模式 ④singleInstance:全局单例模式 |
针对singleInstance应用场景说一下,其它都比较好理解。大致可以理解为全局单例,它应该独立于应用的,就是说和整个业务流应该是单独分离的。个人感觉比较常见的应用场景是:类似微信、QQ、微博的第三方授权页面是典型的应用场景。 |
launchMode即Activity的启动模式 。可以在manifest里面设定 ,一共四种类型: 大多数界面都会设置singleTop ,主页会设置singleTask 。singleInstance的界面 多为系统界面吧 比如打电话界面。 |
singletask模式用的比较多,一般项目首页就可以采用此模式,比如应用中的返回首页按钮。 |
挖下坟,说下对singleInstance的理解。 |
singleTask什么时候开启新栈? |
launch 程序,你可以看下 系统代码。并不是设置singleInstance,老哥 别误导别人,。不是我看了下源码,还信以为真了 |
newIntent 在lanchMode 设置成SingTop 或者Intent 设置SingTop 的flag,才会再次调用。 通过getIntent得到之前的Intent。通过setIntent设置新的Intent 。 SingleInstance应用场景,我看了系统的launch程序,蓝牙程序并不是设置的SingInstanche。相反百度了一圈,俩个应用之间调起Activity,为了不影响彼此,设置成SingleInstance。这个理由/解释不错 |
回答得都太简单了,都没有结合taskAffinity和Flag来回答。 |
SingleTask栈内复用模式: 每个Activity都有taskAffinity属性,这个属性指出了它希望进入的Task,当使用SingleTask来启动Activity时: taskAffinity不重新指定,则会在原来的任务栈中寻找。如果没有,会在当前的任务栈中创建Activity。如果有则把上面的Activity全部出栈,同时也会调用onNewIntent方法; |
大佬,有个问题不太明白,比如App 用户在ActivityA界面,此时收到几条好友请求的推送消息,用户点击推送通知进入到ActivityB界面,如果ActivityB用SingleTop模式启动,因为ActivityB并不是在栈顶,那么不是会创建一个新的ActivityB实例吗?用户在ActivityB是不是就会需要两次返回才能退出?? |
SingleTop为栈顶复用,当ActivityB不在栈顶时,会重新创建一个新的ActivityB1,返回时ActivityB1销毁,回到ActivityA,如果此时正在ActivityB界面,又弹出通知消息,点击消息时,要就不会在创建新的ActivityB,而是直接复用目前栈顶的ActivityB,实现了栈顶复用。 |
如果入口activity设置为“SingleTask”,回到主页再进入应用,会打开入口类,不会保存原来的状态。 |
这个东西自己没用过 是比较难理解的。另外这里面感觉比较乱很有可能是android对这块没有设计好。 |
https://www.bilibili.com/video/BV1CA41177Se?t=237 |
讲的是真的好...感觉看一遍都不够...要反复观摩 |
activity的启动模式有四种standard(默认),singleTask,singleTop,singleInstance |
设置了
因此,如果我们想要设置了启动模式为 |
这是来自QQ邮箱的假期自动回复邮件。
|
补充个新的,第五种android12以上才有效果 当目标栈的底部为当前activity则其栈与生命周期的变化与singleTask模式一样。 |
No description provided.
The text was updated successfully, but these errors were encountered: