九.实现一个简单的Android广播

 BroadcastReceiver中不能处理耗时较长的数据,否则程序会报错。可以使用Service或线程。

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

public class TestReceiver extends BroadcastReceiver{
   //构造函数
   public TestReceiver(){
       system.out.print(“TestReceiver类的构造函数!”);
   }
   //当接收到广播后执行的代码
   @override
   public void onReceive(Context context , Intent intent){
   System.out.println(“onReceive”);
   }
}


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

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

 

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


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

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


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

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

//实例化处理类。TestReceiver为第一步创建的类名
receiverTest = new TestReceiver ();
//创建一个IntentFilter对象,用于存放接收广播的条件
IntentFilter intentFilter = new IntentFilter();
//向IntentFilter对象中添加广播接收的条件
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
//注册广播接收器。
//第一个参数为BroadcastReceiver实例对象.
//第二个参数为广播筛选器。

BroadcastReceiverTestActivity.this.registerReceiver(receiverTest, intentFilter);  

//卸载广播接收器试用如下代码:
//receiverTest是广播处理类对象。
BroadcastReceiverTestActivity.this.unregisterReceiver(receiverTest);


 

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

 

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

<uses-permission Android:name="android.permission.RECEIVE_SMS"/>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值