• 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

  • 相关阅读:
    node.js(八 --- express)
    node.js(六 --- 文件系统模块fs)
    node.js( 五 --- 常用工具util)
    node.js(四 --- 全局对象)
    python 判断变量是否存在 防止报错
    python requests 的cookie 操作
    DDOS 攻击的防范
    python图片识别
    php常见问题-foreach和引用造成的问题。
    数据库数据类型选择
  • 原文地址:https://www.cnblogs.com/huanyou/p/5072234.html
Copyright © 2020-2023  润新知