zoukankan      html  css  js  c++  java
  • Android之BroadcastReceiver(转载)

    转载自-----http://blog.csdn.net/wustrive_2008/article/details/6580956

    一提起广播,我们首先想到的是收音机,当我们想要收听某个广播台时只需要将收音机的频率调至广播台所在的频率即可!而Android中的广播其实和收音机非常相似,不过它没有所谓的频率,它是由系统广播一个事件,然后由其他满足某一条件的程序接收并处理这个事件!!

      要在Android中实现广播,首先我们要在Manifest.xml文件中配置一个<receiver/>标签,这个标签必须有一个android:name属性,值为继承自BroadcastReceiver类的接收器类!这个标签还有一个子标签为<intent-filter/>,这个标签很重要,是指定接收器需要接收哪种广播。另外,还有配置一个用户权限:<uses-permission/>,具体的值可以参考官方API文档。

    另外一个比较重要的步骤是必须有一个类继承自BroadcastReceiver类,并复写onReceiver方法,在该方法中处理接收到广播后需要处理的事情!

    下面来看一个具体的例子,有助于更好的理解广播机制是怎么一回事。

    UI部分就不说了,Activity上就加了一个按钮,点击后发送广播。接收器接收到广播后在终端输出一句话。

    首先看AndroidManifest.xml文件:

     

     

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    3.       package="com.gufengxiachen.broadcast"  
    4.       android:versionCode="1"  
    5.       android:versionName="1.0">  
    6.     <uses-sdk android:minSdkVersion="8" />  
    7.   
    8.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
    9.         <activity android:name=".BroadCast"  
    10.                   android:label="@string/app_name">  
    11.             <intent-filter>  
    12.                 <action android:name="android.intent.action.MAIN" />  
    13.                 <category android:name="android.intent.category.LAUNCHER" />  
    14.             </intent-filter>  
    15.         </activity>  
    16.           
    17.         <receiver android:name=".MyBroadCastReceiver">  
    18.             <intent-filter>  
    19.                 <action android:name="android.intent.action.EDIT"></action>  
    20.             </intent-filter>  
    21.               
    22.         </receiver>  
    23.     </application>  
    24.      
    25.     <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>  
    26. </manifest>  

     

    下面是Activity:

     

    1.   
    1. package com.gufengxiachen.broadcast;  
    2. import android.app.Activity;  
    3. import android.content.Intent;  
    4. import android.content.IntentFilter;  
    5. import android.os.Bundle;  
    6. import android.view.View;  
    7. import android.view.View.OnClickListener;  
    8. import android.widget.Button;  
    9.   
    10. public class BroadCast extends Activity {  
    11.     /** Called when the activity is first created. */  
    12.       
    13.     private Button sendBroadCast =null;   
    14.       
    15.     @Override  
    16.     public void onCreate(Bundle savedInstanceState) {  
    17.         super.onCreate(savedInstanceState);  
    18.         setContentView(R.layout.main);  
    19.          
    20.         sendBroadCast = (Button)findViewById(R.id.sendBroadCast);  
    21.          
    22.         sendBroadCast.setOnClickListener(new SendBroadCast());  
    23.     }  
    24.     class SendBroadCast implements OnClickListener{  
    25.         @Override  
    26.         public void onClick(View v) {  
    27.             // TODO Auto-generated method stub  
    28.               
    29.             Intent intent = new Intent(Intent.ACTION_EDIT);  
    30.             BroadCast.this.sendBroadcast(intent);  
    31.         }  
    32.     }  
    33.         
    34. }  

     

    下面是接收器类:

     

    1. package com.gufengxiachen.broadcast;  
    2.   
    3. import android.content.BroadcastReceiver;  
    4. import android.content.Context;  
    5. import android.content.Intent;  
    6.   
    7. public class MyBroadCastReceiver extends BroadcastReceiver{  
    8.     public MyBroadCastReceiver(){  
    9.           
    10.     }  
    11.     @Override  
    12.     public void onReceive(Context context, Intent intent) {  
    13.           
    14.         System.out.println("message receiver");  
    15.     }  
    16.   
    17. }  
  • 相关阅读:
    递归算法详解
    树、森林和二叉树的转换
    C++ 类的静态成员详细讲解
    C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
    C++中的static关键字的总结
    C/C++中static关键字详解
    配置文件
    Spring Boot 注释
    使用 Spring Boot 快速构建 Spring 框架应用
    Myeclipse快捷键(二)
  • 原文地址:https://www.cnblogs.com/zqq965774513/p/3485354.html
Copyright © 2011-2022 走看看