实现一个简单的Android广播


一.创建一个类,继承BroadcastReceiver类并实现onRecive方法。

[java]
  1. public class TestReceiver extends BroadcastReceiver{  
  2.    //构造函数   
  3.    public TestReceiver(){  
  4.        system.out.print(“TestReceiver类的构造函数!”);  
  5.    }  
  6.    //当接收到广播后执行的代码   
  7.    @override  
  8.    public void onReceive(Context context , Intent intent){  
  9.    System.out.println(“onReceive”);  
  10.    }  
  11. }  

二.在AndroidManifest.xml中注册广播接收条件。注意:在XML文件中注册广播会使程序在任何时候接收广播,即便软件关闭后也继续接收。

[html]
  1. 在AndroidManifest.xml文件的<application></application>之间加入如下代码  
  2. // android:name=”.TestReceiver”为继承BroadcastReceiver类的类名  
  3. <receiver android:name=”.TestReceiver”>   
  4.   <intent-filter>  
  5.     //设置接收广播的条件。只有接收到的广播的条件和action标签中的条件相同时才会执行TestReceiver类。  
  6.     <action android:name=”android.intent.action.EDIT”>  
  7.   </intent-filter>  
  8. </receiver>  

=====================================================================

三.创建一个按钮单机事件,测试发送一个广播。

[java]
  1. //创建一个Intent实例,存储广播数据   
  2. Intent intent = new Intent();  
  3. //设置接收广播所需要的条件。   
  4. //Intent有许多android内置的条件(详见帮助文档的Intent)   
  5. inent.setAction(Intent.ACTION_EDIT);  
  6. //发送一个广播   
  7. TestActivity.this.sendBroadcast(intent);  

=================================================================

四.使用代码创建一个广播接收者
在按钮的Onclick事件中添加如下代码

[java]
  1. //实例化处理类。TestReceiver为第一步创建的类名   
  2. receiverTest = new TestReceiver ();  
  3. //创建一个IntentFilter对象,用于存放接收广播的条件   
  4. IntentFilter intentFilter = new IntentFilter();  
  5. //向IntentFilter对象中添加广播接收的条件   
  6. intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");  
  7. //注册广播接收器。   
  8. //第一个参数为BroadcastReceiver实例对象.   
  9. //第二个参数为广播筛选器。   
  10.   
  11. BroadcastReceiverTestActivity.this.registerReceiver(receiverTest, intentFilter);    
[java]
  1. //卸载广播接收器试用如下代码:   
  2. //receiverTest是广播处理类对象。   
  3. BroadcastReceiverTestActivity.this.unregisterReceiver(receiverTest);  

五.注意:
在AndroidManifest.xml文件中注册的广播接收器会在任何时候接收系统的广播,即使软件关闭以后也会继续接收广播。
在代码中注册广播接收器可以根据需要来注册或卸载广播接收器。

六.接收短信的广播需要添加短信广播接收权限。

[html]
  1. <uses-permission Android:name="android.permission.RECEIVE_SMS"/>  

相关内容