android registerreceiver传参数,registerReceiver()方法传入的receiver为null时的具体实现?...
Intent intent = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
查询电量的时候可以通过上面这种方式返回一个intent,从这个intent中也确实能够拿到我们想要要的信息,但是平常我们注册普通的广播的时候都习惯传入一个receiver,如果有电量改变就会不停的执行receiver的onReceive方法,我的疑问就是1.这两种注册方法有什么不同之处吗?2.如果我频繁的使用传入空receiver的方法进行电量查询会有什么麻烦吗?
------------------分割线-------------------------------
我也去稍微看了下registerReceiver()方法的源码,应该是在ContextImpl类中的
private Intent registerReceiverInternal(BroadcastReceiver receiver, int userId,
IntentFilter filter, String broadcastPermission,
Handler scheduler, Context context) {
IIntentReceiver rd = null;
if (receiver != null) {
if (mPackageInfo != null && context != null) {
if (scheduler == null) {
scheduler = mMainThread.getHandler();
}
rd = mPackageInfo.getReceiverDispatcher(
receiver, context, scheduler,
mMainThread.getInstrumentation(), true);
} else {
if (scheduler == null) {
scheduler = mMainThread.getHandler();
}
rd = new LoadedApk.ReceiverDispatcher(
receiver, context, scheduler, null, true).getIIntentReceiver();
}
}
try {
return ActivityManagerNative.getDefault().registerReceiver(
mMainThread.getApplicationThread(), mBasePackageName,
rd, filter, broadcastPermission, userId);
} catch (RemoteException e) {
return null;
}
}
但是作为一个菜鸟还是没能理解这个方法中receiver为null时的区别,希望大神能够稍微讲解下,也请回答下上面的第二个问题,
android registerreceiver传参数,registerReceiver()方法传入的receiver为null时的具体实现?...相关推荐
- ThinkPHP5.1关于调用setInc方法数据库默认值为NULL时情况
ThinkPHP5.1关于调用setInc方法数据库默认值为NULL时情况 只有当数据库的默认值为 0 的情况下,setInc 方法才能正确添加.否则当数据库默认值为 NULL 时,数据无法正确插入而 ...
- android registerreceiver传参数,Android应用程序注册广播接收器(registerReceiver)的过程分析...
前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/发布机制,因此,使用这种消息驱动模型的第一步便是订阅消息:而对Android应用程序来说,订阅消息其实就是注册广播接收器,本文 ...
- java传参数的方法_java中方法的参数传递机制
无论是什么语言,要讨论参数传递方式,就得从内存模型说起,主要是我个人觉得从内存模型来说参数传递更为直观一些.闲言少叙,下面我们就通过内存模型的方式来讨论一下Java中的参数传递. 这里的内存模型涉及到 ...
- 使用ODBC向SQLServer存储过程传参数的方法
存储过程如下: CREATEPROCEDURETestSP @IDint AS RETURN@@ERROR GO 网上的例子都是用Sql的对象来传参数的,于是使用相同的格式写了代码,结果不能传参数,代 ...
- android 序列化传参数,android 传值 序列化
Activity之间传数据时,为了避免麻烦,往往会将一些值封装成对象,然后将整个对象传递过去.传对象的时候有两种情况,一种是实现Parcelable接口,一种是实现Serializable接口. 0. ...
- 二维数组的传参数的方法
如何将二维数组作为函数的参数传递 今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维 ...
- android 序列化传参数,Android序列化之Parcelable和Serializable的使用详解
序列化与反序列 首先来了解一下序列化与反序列化. 序列化 由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化. 反序 ...
- android把255转换成字节,android 上传参数设置,字符转化成字节,包装流等
jsp中的小知识点 在页面输入内容控制台可以打印 必须写入的内容 value="save"/> 这个的意思是把隐藏域的值提交给了save方法了 SetDooutput(tru ...
- android finish()传参数,48. (android开发) activity间传递数据(打开浏览器、拨号盘、传参)...
在 android 中多个 activity 中互相访问是常见的一种操作,比如:打开系统浏览器.显示系统拨号盘等等. 做这些操作的时候,自然是需要传递一些数据过去,比如:要打开的网址.要拨打的电话号码 ...
最新文章
- php集成paypal付款流程,在PHP中集成PayPal标准支付
- 【python教程入门学习】利用Python绘制关系网络图
- mysql5.5+版本与mysql5.5之前版本部署主从的一些差异
- 实验六 快速生成树配置
- 手机版网页需要上服务器吗,手机能做网页服务器吗
- access 导入 txt sql语句_从零开始学习 MySQL 系列索引、视图、导入和导出
- mysql的dbconn_管道错误使用mysql.conn
- thinkphp5的Illegal string offset 'id'错误
- 一张图了解js运算符优先级
- Clark变换与Park(派克)变换
- catia逆向建模步骤_逆向流程及CATIA逆向的一些技巧
- vr课设《梵高世界》第一人称的解谜游戏
- html5 mp4文件查看,MP4Box 借用HTML5 file api 本地读取 mp4 头信息
- Java学习 day7 (常用API)Scanner类.Random类.Arraylist类
- 计算机校准颜色,直观:如何在Win7计算机中校准显示器|计算机显示器颜色校准...
- 新手小白如何开始网络赚钱?最靠谱的实操方法来了!
- python改word域_Python自动化修改word实例
- Supervisor 配置详解
- 用VB实现两幅图片半透明叠加
- 金融专业术语之——期限错配