Android开发之BroadcastReceiver
2016-08-18 16:05
381 查看
BroadcastReceiver用于监听被广播的事件(Intent)
如何创建一个BroadcastReceiver?
1.首先新建一个类,该类继承BroadcastReceiver类并重写onReceive方法,在该方法中进行接收到广播后的处理。2.对我们的BroadcastReceiver进行注册,告知系统该Receiver接受什么类型的广播。
注意:一旦onReceive方法执行完毕,该BroadcastReceiver对象就会被销毁。所以会出现多次广播,多次处理的情况。
进行BroadcastReceiver注册的两种方法:
1.在应用程序的代码中进行注册(注意:如果Receiver用于更新UI,则使用该方法。在Activity启动时注册,在Activity不可见时取消注册)注册:MainActivity.this.registerReceiver(receiver, filter);
取消注册:MainActivity.this.unregisterReciver(receiver, filter);
2.在AndroidManifest.xml当中进行注册(注意:使用该方法注册的Receiver,无论应用程序是否开启,该Receiver都能工作)
MainActivity.java:
package com.mycompany.testbroadcastreceiver; import android.content.IntentFilter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button regButton; private Button unregButton; private static final String AIRPLANEMODE_ACTION = "android.intent.action.AIRPLANE_MODE"; private SMSReceiver receiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); regButton = (Button)findViewById(R.id.regButton); unregButton = (Button)findViewById(R.id.unregButton); regButton.setOnClickListener(new RegButtonListener()); unregButton.setOnClickListener(new UnregButtonListener()); } class RegButtonListener implements View.OnClickListener{ @Override public void onClick(View v) { // 生成SMSReceiver对象 receiver = new SMSReceiver(); // 生成一个IntentFilter对象,使用该对象设置接收的广播类型 IntentFilter filter = new IntentFilter(); filter.addAction(AIRPLANEMODE_ACTION); // 进行注册 MainActivity.this.registerReceiver(receiver, filter); } } class UnregButtonListener implements View.OnClickListener{ @Override public void onClick(View v) { // 进行取消注册 MainActivity.this.unregisterReceiver(receiver); } } }
SMSReceiver.java:
package com.mycompany.testbroadcastreceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/**
* Created by Administrator on 2016/8/18.
*/
public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("飞行模式");
}
}
相关文章推荐
- android—广播接收者BroadcastReceiver的应用开发范例
- Android应用开发学习笔记之BroadcastReceiver
- Android开发之BroadcastReceiver用法实例分析
- Android开发之Intent和BroadcastReceiver
- Android开发之BroadcastReceiver
- Android开发22——广播接收者BroadcastReceiver的原理和注册方式
- 步步为营_Android开发课[7]_BroadCastReceiver学习
- Android开发之BroadcastReceiver详解
- android开发 - BroadcastReceiver 广播接收者
- Android开发学习之路--Broadcast Receiver之初体验
- Android 开发笔记三 BroadcastReceiver 广播接收者
- Android的Service与BroadcastReceiver之四 BroadcastReceiver 简介、开发与配置;发送广播、有序广播;使用BroadcastReceiver接受系统广播
- Android开发学习笔记:BroadcastReceiver简介和注册方式
- android四大组件之BroadCastReceiver的开发实例
- Android开发学习笔记(3):BroadcastReceiver简介和注册方式
- android 62Android程序开发入门——组件生命周期之Broadcast receiver
- android开发步步为营之38:四大组件之BroadcastReceiver接收广播
- android开发 关于BroadCast Receiver
- Android开发总结笔记 四大组件之BroadcastReceiver 1-2-7
- Android开发之BroadcastReceiver的使用