头部背景图

broadcastreceiver(自定义BroadcastReceiver求助)

2022-09-15 14:47:54 :9
什么原因怎么取消一个静态注册的broadcast receiver如何理解Android BroadcastReceiver 方法onRec

什么原因怎么取消一个静态注册的broadcast receiver如何理解Android BroadcastReceiver 方法onReceive的参数intent当一个广播消息达到接收者时,//消息接收者的注册与解除注册,如果通过第二种方法注册的BroadcastReceiver,}else{//不需要接收广播,}else{//不需要接收广播,}else{//不需要接收广播,android调用broadcastreceiver的什么方法自定义BroadcastReceiver求助android中的activity的方法,App实现一个BroadcastReceiver来接收intent。

本文目录

自定义BroadcastReceiver求助

android中的activity的方法,在广播类broadcastreceiver使用,需要拿到context,就可以使用activity中的方法,如下:
public class TestBBB extends BroadcastReceiver {
@SuppressWarnings(“unused“)
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
ConnectivityManager conMan = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.getState();
}
}

Android2.1 BroadCastReceiver接收不到数据,什么原因

  Android2.1 BroadCastReceiver接收不到数据的原因是因为不支持某些文件类型。具体解决方式为:
  1.蓝牙默认支持所有图片,所有视频,所有音频,文本类型,html,zip,excel,word,ppt,pdf等类型。
  2.使用RE文件夹,找到package/app/bluetooth,对其目录下的AndroidManifest.xml文件的《data android:mimeType=““ /》,添加相应的类型即可。
  3.具体的添加内容为《receiver android:name=“.GetData“》
  《intent-filter》
  《action android:name=“android.provider.Telephony.SMS_RECEIVED“ /》
  《/intent-filter》
  《/receiver》
  这一段写到application标记里面。

怎么取消一个静态注册的broadcast receiver

  BroadcastReceiver是一个用于监听应用程序运行环境变化,并且对变化事件作出响应的组件。譬如说,当电池电量低、SD卡拔插或者手机启动完毕等等事件发生的时候,系统都会广播相应的事件,那么,我们在应用程序中就可以利用BroadcastReceiver对这些事件进行监听,并且执行onReceive方法作出相应的处理。
  我们可以通过两种方式注册BroadcastReceiver,一是在Activity启动过程中通过代码动态注册,二是在AndroidManifest.xml文件中利用《receiver》标签进行静态注册。对于第一种方法,我们需要养成一个良好的习惯:在Activity进入停止或者销毁状态的时候使用unregisterReceiver方法将注册的BroadcastReceiver注销掉。基于此,我们很自然就会想,如果通过第二种方法注册的BroadcastReceiver,是否需要通过代码进行注销呢?基于这个问题,Michael在OPhoneSDN上提出这个疑问。
  最后,Michael还是从Android的源代码中找到了这样的注释:If this BroadcastReceiver was launched through a 《receiver》 tag, then the object is no longer alive after returning from this function. This means you should not perform any operations that return a result to you asynchronously. 这段文字告诉我们:如果通过《receiver》标签来注册的BroadcastReceiver,那么该对象的实例在onReceive被调用之后就会在任意时间内被销毁。也就是说,我们并需要担心静态注册的BroadcastReceiver的销毁问题。

如何理解Android BroadcastReceiver 方法onReceive的参数intent

onReceive(...)是BroadcastReceiver的方法,当系统接收到intent broadcast时,就会被调用到。
intent可以来自于sendBroadcast(Intent intent, String receiverPermission),比如,你有一个service,你需要在某些情况下向前台发送消息,就可以调用这个API,通过intent.put...可以附加很多参数。App实现一个BroadcastReceiver来接收intent,取出参数进一步处理,这是情景之一;
intent也可以来自于系统广播,比如你希望获得地理位置的更新,通常需要编写下述代码,LocationManager在将来某个时点帮忙发送某种类型的Intent,然后你就可以从intent中拿到地理位置数据了,这也是情景之一:
mLocationManager.requestLocationUpdates(provider, 0, 0, PendingIntent pi);
public class LocationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 获取包含地理位置信息的intent
Location loc = (Location) intent.getParcelableExtra(LocationManager.KEY_LOCATION_CHANGED);
......
}
}

当一个广播消息达到接收者时,android调用broadcastreceiver的什么方法

这是我以前做过的一个例子,看看能不能给你帮助,给你参考参考吧。。。。 这里面有三个广播。。。。 public class Test020502Activity extends Activity implements OnClickListener{ /** Called when the activity is first created1); tv2=(TextView)findViewById(R2); tv3=(TextView)findViewById(R3); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btnBroadcastReceive1: //消息接收者的注册与解除注册 ToggleButton b1=(ToggleButton)v; if(b1.isClickable()){//要接收广播,要注册 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(“com.newer.test020502“); intentFilter.setPriority(500);//当前消息接收者的优先级 registerReceiver(broadcastReceiver1, intentFilter); }else{//不需要接收广播,取消注册 unregisterReceiver(broadcastReceiver1); } break; case R.id.btnBroadcastReceive2: ToggleButton b2=(ToggleButton)v; if(b2.isClickable()){//要接收广播,要注册 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(“com.newer.test020502“); intentFilter.setPriority(600);//当前消息接收者的优先级 registerReceiver(broadcastReceiver2, intentFilter); }else{//不需要接收广播,取消注册 unregisterReceiver(broadcastReceiver2); } break; case R.id.btnBroadcastReceive3: ToggleButton b3=(ToggleButton)v; if(b3.isClickable()){//要接收广播,要注册 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(“com.newer.test020502“); intentFilter.setPriority(700);//当前消息接收者的优先级 registerReceiver(broadcastReceiver3, intentFilter); }else{//不需要接收广播,取消注册 unregisterReceiver(broadcastReceiver3); } break; case R.id.btnSendOrderBroadcast: //发送排序广播 Intent intent=new Intent(); intent.setAction(“com.newer.test020502“); intent.putExtra(“saySome“, “Ho~~~~~~~La~~~~~~~“); sendOrderedBroadcast(intent, null); break; case R.id.btnSendBroadcast: Intent intent1 = new Intent(); intent1.setAction(“com.newer.sendBroadcast“); intent1.setFlags(1); sendBroadcast(intent1); break; case R.id.btnSendStickyBroadcast: Intent intent2 = new Intent(); intent2.setAction(“com.newer.sendStickyBroadcast“); intent2.setFlags(2); sendStickyBroadcast(intent2); break; case R.id.btnStart: Intent intent3=new Intent(Test020502Activity.this,OtherActivity.class); startActivity(intent3); break; default: break; } } }

本文编辑:soogor
暂无评论,期待你的首评
新手学ps2020还是pscs6(现在PS方面的小白,想要学习一下,对于初学者来说,学习PS cs6可以吗还是学习PS cc比较好呢)

[编程]新手学ps2020还是pscs6(现在PS方面的小白,想要学习一下,对于初学者来说,学习PS cs6可以吗还是学习PS cc比较好呢)

这些都是就学习PS操作而言的,学习PS cs6可以吗还是学习PS cc比较好呢请问一下,学习PS cs6可以吗还是学习PS cc比较好呢现在
2022年9月26日 09:15
艾客scrm与企鲸客scrm的功能差异?scrm客户转化功能介绍

[编程]艾客scrm与企鲸客scrm的功能差异?scrm客户转化功能介绍

是帮助企业管理客户、销售、业务数据的软件,但一套好用的销售管理系统可以有效帮助销售提升业绩,做好客户管理、销售过程管理,销售过程管理销售离职
2022年9月25日 23:45
word基础入门教程视频(word、excel、ppt这些平时哪里学啊长时间不用都忘了)

[IT百科]word基础入门教程视频(word、excel、ppt这些平时哪里学啊长时间不用都忘了)

系统学一遍:从基础操作技巧,想学一些简单基础的操作还是挺容易的,本文目录word、excel、ppt这些平时哪里学啊长时间不用都忘了如何学好
2022年9月24日 21:45
include_once(include与include_once的区别是什么)

[IT百科]include_once(include与include_once的区别是什么)

就是为了防止重复包含PHP中include、include_once、require、require_once四者区别include是包含,
2022年9月24日 13:30
gpedit msc(找不到gpedit.msc文件怎么办)

[编程]gpedit msc(找不到gpedit.msc文件怎么办)

然后在保存的gpedit.bat上右键选择并点击[以管理员身份运行],同时按WIN+R键打开运行输入gpedit.msc,同时按WIN+R键
2022年9月19日 06:00
python android开发(Python可以开发手机APP和pc桌面应用软件吗)

[编程]python android开发(Python可以开发手机APP和pc桌面应用软件吗)

下面我简单介绍一下这2种方式:QPython这个是手机上编写运行Python的一个软件,下面我简单介绍一下这2种方式:QPython这是安卓
2022年9月15日 22:15
如何让科汛CMS v7像v8一样在自定义输出样式支持if标签?Entity Framework于ADO.Net相比有什么优势

[IT百科]如何让科汛CMS v7像v8一样在自定义输出样式支持if标签?Entity Framework于ADO.Net相比有什么优势

基本的界面EntityFramework都已经提供了,用ADO.net的话可能速度会快一些,格式如下:{$IF 条件}{成立执行的代码}{不成立执行的代码}{/$IF}  不过还有很多用户喜欢v7,智...
2022年9月8日 22:30
成功安装,但无法启动Windows 7系统上的Apache 2.4问题,怎么解决?C语言,C#,.net的区别

[IT百科]成功安装,但无法启动Windows 7系统上的Apache 2.4问题,怎么解决?C语言,C#,.net的区别

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,可以说使用C++语言比直接使用C语言更容易,而C#则完全是另一套语言了,以Java为模板的C#...
2022年9月8日 14:30
如何用mstsc命令远程控制?Cortex-M3处理器与8051比有哪些特点

[IT百科]如何用mstsc命令远程控制?Cortex-M3处理器与8051比有哪些特点

可能问题及解决方法:1、3389端口没有开通[开始]菜单——设置——控制面板——系统——远程属性——勾起:允许用户远程连接到此计算机,关闭防火墙 或者 添加3389端口并...
2022年9月4日 12:30
Js中如何进行HTMLEncode?impressive 跟impressing可以互换吗,是一个意思吧

[IT百科]Js中如何进行HTMLEncode?impressive 跟impressing可以互换吗,是一个意思吧

然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,以下总结了使用javascript处理HTML的Encode(转码)和解码(Decode)的常用方式一、用浏览器...
2022年9月3日 14:30
Copyright © 2022 All Rights Reserved 山东上格信息科技有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.