码迷,mamicode.com
首页 > 移动开发 > 详细

Android 四大组件和Intent

时间:2015-12-24 10:34:21      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

 

一、Android有四大组件:Activity、Service、BroadcastReceiver、ContentProvider。

  1、Activity

    通过startActivity创建新的Activity,通过Intent将信息传递到新从Activity中。

    如果需要返回值,则使用startActivityForResult,并重写onActivityResult方法。在被调用的Activity中,使用setResult将信息传递回调用处。

 

  2、Service

    使用startService、bindService、unbindService、stopService对Service进行操作。通过Intent传递信息。

    这4个方法调用顺序和注意事项,可以查看日志 Android Service 和 Android Service执行unbind后再次执行bind的问题

 

  3、BroadcastReceiver

    使用sendBroadcast、registerReceiver、unregisterReceiver。

    register是android.content.ContextWrapper中的方法,而Activity和Service都继承自ContextWrapper,所以Activity和Service都可以注册Receiver。

    注册Receiver的方式有两种:可以不使用registerReceiver和unregisterReceiver,使用Manifest.xml中配置的方式注册Receiver,这种注册方式称为静态注册,Activity声明周期结束后,BroadcastReceiver依然可以接收到发给它的信息;如果使用registerReceiver和unregisterReceiver,就是动态注册,BroadcastReceiver的声明周期跟随Activity或Service的声明周期。

    当这个Activity被销毁的时候,如果没有执行unregisterReceiver,系统会提示是否忘记取消注册。

 

    sendOrderedBroadcast可以发送有序广播,每个广播在IntentFilter中设置priority属性,通过优先级保证Broadcast的执行顺序,priority值(-1000到1000)越大优先级越高。

 

  4、ContentProvider

    目前只是通过eoe视频学习了调用其他组件提供信息的使用方法。

 

二、Intent

  Intent是组件间传递信息的方式。

  这段时间的学习过程中,大多数时间都在使用Intent(Context, <Class ?>)方法构造Intent对象,这种构造对象的方式可以精确的调用Activity、Service、Broadcast等组件。但是缺点也很明显,比如,不能批量的下发Broadcast(继承或许可以实现,需要实践来验证一下)。对于这样的需求,可以通过Intent(String action)来实现,在Manifest中定义IntentFilter,多个Broadcast对应相同Action的IntentFilter,就可以实现批量发送的功能。

 

Android 四大组件和Intent

标签:

原文地址:http://www.cnblogs.com/huanyou/p/5072234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!