Android开发之BroadcastReceiver
来源:互联网 发布:如何看懂财务报表 知乎 编辑:程序博客网 时间:2024/06/14 12:02
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("飞行模式"); }}
0 0
- Android开发之BroadcastReceiver
- Android开发之BroadcastReceiver详解
- Android开发之BroadcastReceiver组件
- Android开发之BroadcastReceiver详解
- Android开发之BroadcastReceiver详解
- Android开发之BroadcastReceiver详解
- Android开发之BroadcastReceiver(一)
- Android开发之BroadcastReceiver(二)
- Android开发之短信拦截--BroadcastReceiver学习
- Android应用开发学习笔记之BroadcastReceiver
- Android开发之Intent和BroadcastReceiver
- Android开发学习之路 -- 关于BroadcastReceiver
- Android开发四大组件之BroadcastReceiver
- Android开发BroadcastReceiver详解
- Android之Intent&BroadcastReceiver
- Android之Service&BroadCastReceiver
- Android之BroadcastReceiver
- android学习之-BroadcastReceiver
- android MVC MVP MVVM如何区分
- Windows下Redis安装
- Material Design动画:涟漪效果
- 浅谈项目管理
- 使用CXF遇到的错误
- Android开发之BroadcastReceiver
- Spring的事务管理难点剖析:事务方法嵌套调用的迷茫
- 程序员注意事项
- Java NIO系列教程(十二) Java NIO与IO
- android中的触摸事件
- Nodejs项目部署与踩过的那哪些坑
- gdb 跟踪调试命令整理
- PHP框架单入口文件原理浅析
- springmvc与struts2比较