• Android 四大组件和Intent


    一、Android有四大组件(component):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等组件。但是缺点也很明显,比如,指定了一个Activity来打开文件,而如果用户没有安装对应的app,就没有办法打开文件。对于这样的需求,可以通过Intent(String action)来实现,需要在Manifest中定义IntentFilter。更多关于Intent的信息,可以查看日志Intent

  • 相关阅读:
    初学Java——数组
    Ubuntu下将软件添加到快捷启动栏的问题
    初学Java——方法
    初学Java——选择
    初学Java——常用类之Math笔记
    初学Java——基本程序设计笔记(2)
    初学Java——基本程序设计笔记(1)
    关于IE浏览器里修改元素style属性的问题
    2.22,2.24工作进度
    2.21工作进度
  • 原文地址:https://www.cnblogs.com/huanyou/p/5072234.html
Copyright © 2020-2023  润新知