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缺一不可

最新文章

  1. WindowManager.LayoutParams 札记
  2. 9款一键快速搭建PHP运行环境的好工具
  3. Python脚本模拟登录网页之ZiMuZu篇
  4. 怎样去除ul li a标签文字下的下划线
  5. 敏捷开发系列之旅 第二站(走近XP极限编程)
  6. Eclipse创建java webproject配置Tomacat和JDK
  7. Fabric 1.0的多机部署
  8. java 邮件发送的公共方法
  9. NI_NUMERICHOST" is not exported by the Socket module "getaddrinfo" is not expo
  10. 【笔记】Python基础四:迭代器和生成器
  11. Linux 进程中 Stop, Park, Freeze【转】
  12. 「ZJOI2015」地震后的幻想乡
  13. 2017面向对象程序设计(JAVA)课程总结
  14. 在SQL service或Oracle中将数字转换成有千位符号
  15. Socket for android 简单实例
  16. TFS中工作项的定制-修改面板
  17. Nodejs Mocha测试学习
  18. 【动态规划技巧题】POJ2229-Sumsets
  19. Linux脚本程序包及安装
  20. shell set 命令

热门文章

  1. Curl是什么,原文地址:http://www.phpchina.com/portal.php?mod=view&aid=40161
  2. docker挂载NVIDIA显卡运行pytorch
  3. [DeeplearningAI笔记]改善深层神经网络_优化算法2.3_2.5_带修正偏差的指数加权平均
  4. 《收藏》对servlet原理讲解特别详细
  5. Sonar项目主要指标以及代码坏味道详解
  6. Acrobat 转换pdf到png的另一种方法
  7. c#代码启动任务管理器的几种方法
  8. hdu 4656 Evaluation [任意模数fft trick]
  9. 【WC2013】糖果公园 [树上莫队]
  10. BZOJ 4318: OSU! [DP 概率]