Intent与Activity

 
•何谓Activity:最简单的就是你可以把Activity看成一个User Interface Program,原则上它会提供使用者一个交互式的接口功能,那一个activity只有一个UI吗?非也,举例来说:一个email程序,就可能 包含三个activity
–邮件列表的activity
–显示邮件内容的activity
–写新邮件或回复邮件的activity
•所 有的Activity在系统里由Activity堆栈所管理,当一个新的Activity被执行后,它将会被放置到堆栈的最顶端,并且变 成"running activity", 而先前的Activity原则上还是会存在于堆栈中,但它此时不会是在前景的情况,除非刚刚那个新的Activity离开。
 
•Android使用了一个很特别的类别叫 Intent , 用来从一个画面跳到另一个画面。
•Intent是用来描述一个程序想要作些什么事情。
•在Intent的数据结构里有两个很重要的部份,一个是动作 (action)及对数据产生反应(data to act upon)。action主要的内容有MAIN(程序的进入点),VIEW,PICK,EDIT等等。data则是用URI的形示来表示。比如:想要查看 一个人的联络数据时,你需要建立一个Intent,它包含了VIEW的动作(action)及指向该人数据的URI描述句。
 
•当Intent要求做某些事情时,IntentFilter被用来描述这个activity能够做些什么事情。比如 一个activity要能够显示个人联络数据,你就必需要在IntentFilter说明你要如何处理个人联络数据并用ACTION_VIEW呈现出来。
• IntentFilter都会在AndroidManifest.xml清单里面声明。
 
•当你想要写一个程序来对外部的事件做些处理时,可以使用Broadcast Intent Receiver。比如:当电话响时,有短信时。Broadcast Intent Receiver它并不能拿来显示UI画面,它必需利用NotificationManager来通知使用者他们感兴趣的事件发生了。
•Broadcast Intent Receiver同样的可以在AndroidManifest.xml中声明,但你也可以用写 Context.registerReceiver()程序的方式来注册你自己的Broadcast Intent Receiver。你自己的程序并不会因为BroadcastReceivers被呼叫而被它执行起来。而是当BroadcastReceiver被触发 时系统会依需求来执行相对应的程序。
程序可以利用Context.sendBroadcast()来发出他们自己的intent broadcast给其它的程序。
 
•画面的切来切去则是由resolving intent来实现的。当你想产生新的画面时,现行的activity就使用 startActivity(myIntent)
•系统会根据所有已安装的程序所定义的intent filter来看那个程序是最适合myIntent。
•当startActivity被呼叫时,resolving Intents的处理过程是伴随而来的。resolving intent提供我们两个好处:
–让Activities可以很容易的利用Intent的方式去使用别的程序的功能。
–Activities可以很容易的在任何情况下由新Activity所取代。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值