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

        

  • 相关阅读:
    Silverlight2 开发环境 安装程序顺序
    Java——IO流超详细总结
    【慢慢学Android】:2.SharedPreferences对数据的存储
    【慢慢学算法】:求最大公约数
    【慢慢学算法】:求较大素数 筛选法
    【慢慢学算法】:排名
    手把手教你将vim配置成一个C/C++的超级IDE
    【慢慢学算法】:特殊乘法
    【慢慢学算法】:qsort()与sort的用法(收藏)
    【慢慢学算法】:数字阶梯求和
  • 原文地址:https://www.cnblogs.com/codingblock/p/4856213.html
Copyright © 2011-2022 走看看