上一篇文章介绍了在AndroidManifest.xml文件中定义过滤器的方法,这篇文章讲解使用java代码定义这些过滤器。
首先,介绍在xml文件中定义过滤器的弊端。如果开发者在xml文件中定义的不是系统级事件,正如上一篇文章中的那样,那么不管用户的应用程序是否关闭,Receiver程序始终处于运行(监听)状态,直到用户手机关闭。这样,就会对内存和手机电量造成极大的浪费,所以当用户不需要定义系统级事件时,可以使用简单的java代码实现过滤器的注册。
下面是具体的实现代码:
public class BroadcastReceiver01 extends Activity {
private Button button;
private Button button2;
private Broadcast_receiver brReceiver01;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_broadcast_receiver01);
button=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
brReceiver01=new Broadcast_receiver();
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("BruceZhang");
registerReceiver(brReceiver01, intentFilter);
Intent intent=new Intent("BruceZhang");
// 由于是并不是使用内置的Action,所以系统不会发出这个广播事件,仍然需要用户手动的去广播
sendBroadcast(intent);
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
unregisterReceiver(brReceiver01);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_broadcast_receiver01, menu);
return true;
}
}
public class Broadcast_receiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
Log.d("BruceZhang", "This is BroadcastReceiver!!!"+arg1.getAction());
if(arg1.getAction()=="BruceZhang"){
Log.d("BruceZhang", "---->This is BroadcastReceiver!!!");
}
}
}
分享到:
相关推荐
将一个BroadcastReceiver转成一个Observable
Android移动应用开发中BroadcastReceiver单元主要内容.pdf 学习资料 复习资料 教学资源
Android BroadcastReceiver
只在Nexus 4、Nexus 5X上测试通过,小米手机不能使用(MIUI会把不在近期任务列表里的应用杀掉,导致应用的BroadcastReceiver不能响应拨号事件) 特点: 可以隐藏软件自身的图标,并通过在拨号盘输入暗号启动应用 不...
Stage2_Lesson3Android应用开发基础及原理概要 Stage2_Lesson4Activity与Intent Stage2_Lesson5Service初步 Stage2_Lesson10应用程序签名及发布 Stage2_Lesson8ContentProvider Stage2_Lesson9BroadcastReceiver ...
Stage2_Lesson3Android应用开发基础及原理概要 Stage2_Lesson4Activity与Intent Stage2_Lesson5Service初步 Stage2_Lesson10应用程序签名及发布 Stage2_Lesson8ContentProvider Stage2_Lesson9BroadcastReceiver ...
Stage2_Lesson3Android应用开发基础及原理概要 Stage2_Lesson4Activity与Intent Stage2_Lesson5Service初步 Stage2_Lesson10应用程序签名及发布 Stage2_Lesson8ContentProvider Stage2_Lesson9BroadcastReceiver ...
android service Notification BroadcastReceiver Intent 安装的服务开机自启动,service定时的打印消息,消息同时显示在通知栏,窗体界面的跳转,自定义控件的开发。系统广播,定时广播,轮询广播等。...
第一部分 基础篇-Android开发基础 第1章 Android应用开发基础/2 1.1 Android的系统构架/2 1.2 Android开发环境搭建/3 1.2.1 安装JDK和配置Java开发环境/3 1.2.2 安装AndroidSDK/4 1.2.3 安装Eclipse插件ADT/6 1.3 ...
Stage2_Lesson3Android应用开发基础及原理概要 Stage2_Lesson4Activity与Intent Stage2_Lesson5Service初步 Stage2_Lesson10应用程序签名及发布 Stage2_Lesson8ContentProvider Stage2_Lesson9BroadcastReceiver ...
Stage2_Lesson3Android应用开发基础及原理概要 Stage2_Lesson4Activity与Intent Stage2_Lesson5Service初步 Stage2_Lesson10应用程序签名及发布 Stage2_Lesson8ContentProvider Stage2_Lesson9BroadcastReceiver ...
一个简单的Android按键监听程序,通过通过BroadcastReceiver监听Home,电源Power,和音量变化Volume键
Android移动开发检测网络状态并使用BroadcastReceiver(广播接收者)进行接收网络变化的后续处理
初中级Android开发社招面试之Service及BroadcastReceiver
初中级Android开发社招面试之Service及BroadcastReceiver
第1篇android开发基础主要介绍了android系统的发展史、基本组件、android开发环境的搭建、android布局、android基本控件、android高级控件、android辅助功能、activity和intent、service与broadcastreceiver、...
android开发期末大作业(项目源码,任务书,实验大报告,apk文件) 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 一、实验项目名称 Android手机应用开发课程大作业 二、实验目的 1....