[Android] 学习笔记一

Activity

最简单的就是你可以把Activity 看成一个User Interface Program,原则上它会提供使用者一个交互式的接口功能,那一个Activity 只有一个UI 吗?非也,举例来说:一个email 程序,就可能包含三个Activity:

  • 邮件列表的Activity
  • 显示邮件内容的Activity
  • 写新邮件或回复邮件的Activity

所有的Activity 在系统里由Activity 堆栈所管理,当一个新的Activity 被执行后,它将会被放置到堆栈的最顶部,并且变成running Activity,而先前的Activity 原则上还是会存在于堆栈中,但它此时不会是在前景的情况,除非刚刚那个新的Activity 离开。

 

Intent

Android 使用了一个很特别的类别Intent,用来从一个画面跳另一个画面,Intent 是用来描述一个程序想要做些什么事情。在Intent 的数据结构中有两个很重要的部分,一个是动作(action)及对数据产生反应(data to act upon)。Action 主要的内容有MAIN(程序的入口点),VIEWPICKEDIT 等等。Data则是用URI 的形式来表示。比如:想要查看一个人的联络数据时,你需要建立一个Intent,它包含了VIEW的动作(action)及指向该人数据的URI 描述句。

 

Intent Filter

Intent 要求做某件事时,IntentFilter 被用来描述这个Activity 能够做些什么事情。比如一个Activity要能够显示个人联络数据,你就必需要在intentFilter 说明你要如何处理个人联络数据, 并用ACTION_VIEW 呈现出来。IntentFilter 都会在AndroidManifest.xml 清单里面声明。

 

Broadcast Intent Receiver

当你想要写一个程序来对外部的事件做些处理时,可以实用Broadcast Intent Receiver 比如:当电话响铃时,有短信时。Broadcast Intent Receiver 它并不能够拿来显示UI 画面,它必需利用NotificationManager 来通知使用者它们感兴趣的事件发生了。

Broadcast Intent Receiver 同样的可以在AndroidManifest.xml 中声明, 但你也可以用写Context.registerReceiver()程序的方式来注册你自己的Broadcast Intent Receiver。你自己的程序并不会因为Broadcast Receiver 被呼叫而被它执行起来,而是当BroadcastReceiver 被触发时系统会依据需求来执行相应的程序。程序可以利用Context.sendBroadcast()来发出它们自己的IntentBroadcast 给其它的程序。

 

Intent Activity

而画面的切来切去则是由resolving Intent 来实现的。当你想产生新的画面时,现行的Activity就使用startActivity(myIntent)。然后系统就会根据所有已安装的程序所定义的Intent filter 来看哪个程序是最适合myIntent。当startActivity 被呼叫时,resolving Intents 的处理过程是伴随而来的。Resolving Intent提供我们两个好处:

  •  Activities 可以很容易的利用Intent 的方式去使用别的程序的功能。
  •  Activities 可以很容易的在任何情况下由新的Activity 所取代。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值