android的基本知识

学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完成的。

还有许多问题,下一次再写了!!呵呵
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值