学android也已经5个月了,不知道是自己的英语不够好还是一直找不到自己的位置,到现在对android的基础知识并不透彻,此时”囫囵吞枣“这个词语特别形象。当一个朋友问我”intent分哪几种?”我回答:”startActivity 不返回结果的和startActivityForResult返回结果的“。朋友笑着说:我也是这样回答面试官的,面试官告诉他是显式intent(Explicit Intent)和隐式Intent(Implicit Intent).

你是否问过:为什么一个activity需要生命周期呢?为什么分这么多component呢?Activity,Task,Activity Stack,Application,Intent Flag,Intent filter 这些概念是否很清晰明了的知道呢?这些概念在实际应用中你有很好的处理了吗?

今天没事,我在网上无意发现了一篇好文章,大家可以去研读一下http://www.360doc.com/content/09/1201/15/79031_10135626.shtml。

分享我的心得,若有不对的地方,请指出:)

1,Aplication 一个.apk包就可以称一个application,一般application会有很多Activity 或其他service组成。

2,task:完成用户的一个目的的所有activity 组成一个task.提到task就该提到task stack任务栈也有人叫活动栈。android系统用一个栈来记录一个任务,既然一个任务是由许多activity组成的,那栈里存的就是所有的activity。为什么需要记录呢?因为记录可以通过按back 键回到上一个activity.这也是为什么我们按back键可以回到上一个活动的原因。那么什么时会开启一个新的任务呢?A)Notification 启动Activity会开启一个task,因为通过notification开启activity之后不需要返回到notification,所以需要开启一个新的task,这就是为什么我们在nofication里面启动一个Activity需要设置Intent的Flag为Intent.FLAG_ACTIVITY_NEW_TASK.

3,explicit intent 是明确指定启动哪个Activity,比如 Intent intent= new Intent(ActivityA.this, ActivityB.class).而implicit intent并不明确指定启动那个Activity,而是通过设置一些Intent Filter来让系统去帅选合适的activity来处理。为什么需要分这两种Intent呢?我觉得好处有两个:第一,Activity 的重用,当一个Activity在其manifest里设置了许多intent filter,当发生了implicit intent时,系统就会去匹配这些filter,是否符合目标。所以在设计Activity的时候就要考虑到是否重用问题,若需要重用就要设置intent filter. 第二,Implicit intent可以让用户选择自己喜欢的Activity来处理。若在系统匹配filter时,发现多个符合目标的activtiy就会弹出对话框让用户来选择Activity.

4,启动一个Activity可以是同一个application也可以是不同的application来启动,这就是为什么每个Activity需要自己独立的什么周期。这意味着task stack里有可能不同application的activity组成。也就是说一个task是可以有不同的application组成或者说一个task由不同的application完成的。

还有许多问题,下一次再写了!!呵呵



更多相关文章

  1. Android 根文件系统启动过程。
  2. Android系统移植与调试之------->如何修改Android设备存储盘符名
  3. 如何使Android应用程序获取系统权限来修改系统时间
  4. 关于android读取用户号码,手机串号,SIM卡序列号
  5. Android7.0 系统启动流程---system_server
  6. Android系统服务 WMS与AMS简单理解
  7. 室内定位导航系统设计实现指南
  8. Android系统框架简单理解
  9. android 文件系统分析

随机推荐

  1. android 动画自动播放
  2. Android应用框架之应用启动过程详解
  3. Android从相机或相册获取图片裁剪
  4. Android:Changes to the SecretKeyFactory
  5. android一种较为复杂的布局
  6. 浅析android下如何通过jni监控wifi网络连
  7. Android中定时器的3种实现方法
  8. Android 使用ContentProvider 添加联系人
  9. Android service生命周期详解
  10. 巧妙均分TabLayout tab