zoukankan      html  css  js  c++  java
  • Android学习笔记(十)BroadcastReceiver初体验

      BroadcastReceiver是Android系统的四大组件之一,本质是一种全局的监听器,用于接收系统全局的广播消息。真因为如此,BroadcastReceiver可以很方便的是实现系统中不同组件之间的通讯。

    一、创建BroadcastReceiver

      创建一个BroadcastReceiver很简单,只需创建一个BroadcastReceiver的子类即可:

    public class MyReceiver extends BroadcastReceiver {
    	@Override
    	public void onReceive(Context context, Intent intent) {
    		//如果onReceive内的操作10s内没有执行完成,Android会认为该进程无响应,所以不要再此作耗时操作
    	}
    } 

      

    二、两种指定Receiver匹配的Intent的方式

      第一种:在AndroidManifest.xml文件中配置,如下:

    <receiver android:name="com.codingblock.receiver.MyReceiver">
                 <intent-filter>
                     <action android:name="com.codingblock.receiver.action.MyReceiver"/>
                 </intent-filter>
    </receiver> 

      第二种:在代码中动态注册,如下:

    MyReceiver receiver = new MyReceiver();
    registerReceiver(receiver, new IntentFilter("com.codingblock.receive.intent.action.MyReceiver")); 

     

    三、启动一个BroadcastReceiver

      BroadcastReceiver用于接收程序(包括用户开发的程序和程序内建的系统)所发出的Broadcast Intent,启动一个BroadcastReceiver只需两步:

      第一步:创建一个需要启动BroadcastReceiver的Intent。

      第二步:调用Context的sendBroadcast()方法或sendOrderedBroadcast()方法来启动Intent;

      当一个Broadcast Intent被发出后,所有匹配该Intent的Receiver都有可能被启动。 

      当然,对Receiver不同的注册方式,需要用不同的方式去启动,两种注册方式对应的启动方法如下:

      在AndroidManifest.xml中配置的Receiver(2中第一种方法),启动方式如下:

    Intent intent = new Intent(MainActivity.this, MyReceiver.class);
    sendBroadcast(intent);
    

       在代码中动态注册的Receiver(2中第二种方法),启动如下:

    Intent intent = new Intent("com.codingblock.receive.intent.action.MyReceiver");
    sendBroadcast(intent);
    

        

  • 相关阅读:
    JavaScriptCore框架介绍
    可执行程序加载到内存的过程
    阿里云服务器怎么更换系统盘
    什么是A记录  域名
    宝塔服务器管理助手Linux面版-使用教程
    虚拟主机、VPS以及云主机的区别和对比
    怎样选择一个好的虚拟主机
    解Linux SSH命令大全,新手必看SSH命令
    虚拟主机,VPS,云主机之间的区别?
    云服务器和虚拟主机的区别:
  • 原文地址:https://www.cnblogs.com/codingblock/p/4856213.html
Copyright © 2011-2022 走看看