2016-02-01 16:38:40 394浏览
本篇文章将持续上一篇文尾提到的android培训中android开发应用程序的运行机制这一问题。
Android系统使用了Intent这个特殊类,来实现应用程序显示界面之间的切换。相对于Intent是一个有效的动作请求,与之产生关系的另一个类为意图过滤器(intentFilter)。IntentFilter是用于描述一个Activity(或者其他IntentReeeiver)能够接受并响应哪些类型的Intent。
假设android开发者需要一个显示电话簿甫联系人内容的Activity,则他就要需要声明一个IntentFilter。这个IntentFilter需要知道怎么去处理查看(Ⅷw)动作以及其含有的联系人URI。开发者可以在AndroidManifest.xml中定义IntentFilter。通过解析各种类型Intent,应用程序从一个画面切换到另一个画面就变得很简单。当切换当前组件时,Activity将会调用startAetivity(IntentmyIntent)方法。然后,Android系统会在所有安装的应用程序所定义的IntentFilter中查找,直到找到最佳匹配的Intent并调用其对应的Activity。刚刚执行的Activity就会接收到myIntent的通知,然后开始运行。当StartAetivityO方法被调用时,将触发解析myIntent的动作。这样的运行机制存在两个关键优点:
·Activities能够被重复利用。Android系统可以从其他组件中以Intent的形式调用它们。
·Activities可以在任何时候被一个具有相同IntentFilter的Activity取代。
当开发者希望应用程序能够对一些外部事件做出响应,例如当接收短信时、电话呼入时、数据网络可用时或者到了晚上时,则可以使用一个Intent Receiver对象实例来完成。虽然IntentReceiver在其关注的事件发生时,会使用Notification Manager来通知用户,但它并不能生成一个用户可以见到的显示界面UI。Intent Receiver需要开发者在AndroidManifest.xml中注册,同时也可以在代码中使用Co_atext.registerReeeiver0方法进行注册。当一个Intent Receiver被触发时,开发者并不需要自己请求Intent Receiver调用应用,Android系统会在需要的时候自动启动应用程序。另外,应用程序还可以通过使用Context.broadeastintentO将它们自己的Intent Receiver广播给其他应用程序。
扣丁学堂作为国内口碑最好的Android培训机构,开设免费Android开发视频课程,课程内容从android开发入门环境搭建到android开发实战项目训练,课程最基础内容细化java初级语言,0基础学android开发也行,如果你对android开发也有兴趣,欢迎前来扣丁官网阅览咨询。