Activity的生命周期& 启动模式
1.Activity的生命周期
生命周期这个事情,是android工程师最基础的知识,所以今天要讲的是一些不一样的东西。
1.1 OnStart,OnResume,OnPause,OnStop 他们的区别是什么?
OnStart & OnStop, 这一对发生的时候,页面已经显示,但是处于backgroud的状态,所以用户无法看到。
OnResume & OnPause,发生在用户可以看到页面,也就是从后台到前台。
OnPause->OnStop,如果下个页面是透明的,OnStop不会被呼叫。
2.Activity的启动flag
4大启动模式,也是最基本的知识,。
只有activity可以启动其他的
application 启动activity,由于没有历史栈,需要加flag:FLAG_ACTIVITY_NEW_TASK
这样这个activity会存在一个新task
FLAG_ACTIVITY_NEW_TASK:这个标志同singtask launchmode的效果一样。
FLAG_ACTIVITY_SINGLE_TOP:这个标志同singletop 效果一样。
FLAG_ACTIVITY_CLEAR_TOP: 会把在task 栈上面的activity,出栈。
3.intentFilter
intentFilter是用于隐式调用的,显示调用&隐式调用同时存在,将以显示调用为准
intentFilter有三个部分组成:action,category,& data
一个activity可以有几组intentFilter,只要匹配一个,就可以启动activity
但是必须同时瞒住action,category & data的匹配,才能保证activity被启动。
同一个intentFilter可以有几个action,只要满足一个就可以,同理category & data也是。
Action:action的字串,必须完全一致,才能算作匹配。
Category:category可以有多个,但是每一个都必须同 intentFilter的某一个匹配。Category也可以为空,这样系统会默认为我们加上action.intent.category.DEFAULT 这样就要求每个支持隐式调用的activity,都必须有action.intent.category.DEFAULT
Data:data的匹配规则跟action相似。只要匹配一个元素,但是必须使用setdataandType 方法来设定。Setdata & setType这2个方法是互斥的。
当我们在使用隐式启动activity的时候,可以先使用PackageManager的resolveActivity 或者Intent的resolveActivity,在查询的时候,需要加flag:MATCH_DEFAULT_ONLY
还有一个特殊的页面:action = android.intent.action.MAIN category=android.intent.category.LAUNCH缺一不可
Activity的生命周期& 启动模式的更多相关文章
- android83 Activity的生命周期,启动模式,返回时传递数据
#Android四大组件 * Activity * BroadCastReceiver * Service * ContentProvider #Activity生命周期 * oncreate:Act ...
- Day2 Activity生命周期/启动模式/最佳实践
Android是使用任务(Task)来管理活动的,这个栈被称作返回栈(Back Stack). Activity类中定义了7个回调方法: onCreate().在活动第一次被创建时调用,应该在这个方法 ...
- 十分钟掌握Activity的生命周期与启动模式
1. Activity的生命周期 正常情况下的Activity生命周期如下图所示(来自Android Developer): 当资源相关的系统配置变更时(比如设备屏幕方向改变,键盘可见性变化),会导致 ...
- 无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)
1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCrea ...
- Android开发艺术探索(一)——Activity的生命周期和启动模式
Activity的生命周期和启动模式 生命周期有? 1.典型情况下的生命周期—>指有用户参与的情况下,Activity所经过的生命周期改变 2.异常情况下的生命周期—>指Activity被 ...
- 《Android开发艺术探索》读书笔记 (1) 第1章 Activity的生命周期和启动模式
第1章 Activity的生命周期和启动模式 1.1 Activity生命周期全面分析 1.1.1 典型情况下生命周期分析(1)一般情况下,当当前Activity从不可见重新变为可见状态时,onRes ...
- Activity的生命周期和启动模式
Activity的生命周期分析 典型情况下的生命周期.是指在用户参与的情况下,Activity所经过的生命周期的改变. 异常情况下的生命周期.是指Activity被系统回收或者由于当前设备的Confi ...
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
- 一、Activity的生命周期和启动模式
1.Activity的生命周期 1.1.典型情况下的生命周期 在有用户参与的情况下,Activity所经过的生命周期的改变. Activity会经历如下生命周期: onCreate-onRestart ...
随机推荐
- npm install安装时忘记--save解决方法
title: npm install安装时忘记--save解决方法 date: 2017-05-07 20:17:54 tags: npm categories: --- 网上还有一个解决方案就是: ...
- Java虚拟机栈和本地方法栈
Java虚拟机栈的特征 线程私有 后进先出(LIFO)栈 存储栈帧,支持Java方法的调用.执行和退出 可能出现OutOfMemoryError异常和StackOverflowError异常 Java ...
- python urllib2与urllib
1.urllib2可以接受一个Request对象,并以此可以来设置一个URL的headers,但是urllib只接收一个URL. 2.urllib模块可以提供进行urlencode的方法,该方法用于G ...
- Zabbix3.4部署
Zabbix简介 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活 ...
- mybatis支持oracle批量插入
问题:mysql使用mybatis批量插入时,通过foreach标签,将每条记录按照逗号","连接即可. 但是,oracle不支持. oracle支持如下写法: <inser ...
- 《.NET 设计规范》第 3 章 命名规范
<.NET 规范>第 3 章 命名规范 3.1 大小写约定 要把 PascalCasing 用于由多个单词构成的命名空间.类型以及成员的名字. 要把 camelCasing 用于参数的名字 ...
- 编译安装 python 2.7
下载python2.7 Python-2.7.6.tgz 下载链接:http://pan.baidu.com/s/1c0AJDDI 配置./configure 编译make 安装 make insta ...
- 洛谷 [P2420] 让我们异或吧
某两点之间的路径上所有边权的异或值即dis1^dis2--^disn. 由于x^y^y=x,所以dfs预处理出每一点到根节点的异或值,对于每次询问,直接输出 disu^disv. #include & ...
- POJ3335 POJ3130 POJ1474 [半平面交]
终于写出自己的半平面交模板了....... 加入交点的地方用了直线线段相交判定 三个题一样,能从任何地方看到就是多边形的内核 只不过一个顺时针一个逆时针(给出一个多边形的两种方式啦),反正那个CutP ...
- 2017人生总结(MECE分析法)
试着用MECE分析法对人生的整个规划做一下总结.作为技术人员,其实除了编码架构能力之外,分析问题的能力的重要程度也会随着职业发展越来越重要.<美团点评技术博客>说这几天要在黄金时段头版头条 ...