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);
    

        

  • 相关阅读:
    ubuntu
    ubuntu
    ubuntu14.04,安装Gnome 15.10 (桌面)
    ubuntu14.04,安装Gnome 15.10 (桌面)
    Ubuntu 14.04.3 LTS如何安装谷歌输入法
    Ubuntu 14.04.3 LTS如何安装谷歌输入法
    ubuntu 安装 删除 卸载 Deb 包文件
    失去爆破音规律
    单词发音规律
    英式音标和美式音标的差异
  • 原文地址:https://www.cnblogs.com/codingblock/p/4856213.html
Copyright © 2011-2022 走看看