千金一刻莫空度,老大无成空自伤。这篇文章主要讲述详解Android开发中Activity的四种launchMode相关的知识,希望能为你提供帮助。
Activity栈主要用于管理Activity的切换。当使用Intent跳转至某个目标Activity,需要根据目标Activity的加载模式来加载。
Activity一共有以下四种launchMode:
1.standard:默认,每次使用Intent跳转到目标Activity时都创建一个新的实例。坏处是每次进入都要创建新的实例,执行OnCreate方法。
文章图片
2.singleTop:如果要跳转的目标Activity正好在task的顶部(说明当前肯定不在目标task里,例如我在微信首页,然后想使用Intent跳转到InnoXYZ应用的首页,那么加入InnoXYZ首页正好在InnoXYZ的task顶部,就直接跳转而不会创建实例),那么就直接跳转过去而不会创建新的。(例子,当前在Home Screen, 收到一条微信首页的推送,而此时task栈里的微信task里的Activity栈里的最顶部正好就是微信首页,那么点击推送就直接进入该实例而不会创建新的实例)
文章图片
3.singleTask:会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。
4.singleInstance:是其所在栈的唯一activity,它会每次都被重用。
launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。
我们可以在androidManifest.xml配置< activity> 的android:launchMode属性为以上四种之一即可。
android:exported
- 在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。
- android:exported
是Android中的四大组件
Activity,Service,Provider,Receiver
四大组件中都会有的一个属性。
- 【详解Android开发中Activity的四种launchMode】总体来说它的主要作用是:是否支持其它应用调用当前组件。
推荐阅读
- (精品)微信支付android端
- Android中"get","post"请求的其中三种常用数据提交方式
- Android使用BaseAdapter实现复杂的ListView
- Android xml 格式 随笔
- [Android Pro]http请求中传输base64出现加号变空格的解决办法
- React属性验证propTypes用法介绍 – ReactJS实战教程
- React主要特性及其优点和缺点 – ReactJS实战教程
- PHP Ds Deque find()函数用法代码示例
- 后缀树应用6(最长回文子串详细实现代码)