java lang nullpointer_java.lang.throwable

java lang nullpointer_java.lang.throwableIntentintent=registerReceiver(null,newIntentFilter(Intent.ACTION_BATTERY_CHANGED));查询电量的时候可以通过上面这种方式返回一个intent,从这个intent中也确实能够拿到我们想要要的信息,但是平常我们注册普通的广播的时候都习惯传入一个receiver,如果有电量改变就会不停的执行receiver的onR…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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时的区别,希望大神能够稍微讲解下,也请回答下上面的第二个问题,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194865.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 互联网后端基础技术

    互联网后端基础技术互联网后端基础技术

    2022年4月22日
    35
  • 走进webpack(3)– 小结「建议收藏」

    写这一系列的文章,本意是想要梳理一下自己凌乱的webpack知识,只是使用过vue-cli,修改过其中的一部分代码,但是对于一个简单项目从0开始搭建webpack的流程和其中的依赖并不是十分清楚。所以

    2022年3月25日
    35
  • QVBoxLayout的使用

    QVBoxLayout的使用#include<QApplication>#include<QPushButton>#include<QWidget>#include<QMenuBar>#include<QStatusBar>#include<QVBoxLayout>#include<QTextEdit>#include&amp

    2022年6月17日
    35
  • bookmark什么意思_猎豹浏览器bookmarks乱码

    bookmark什么意思_猎豹浏览器bookmarks乱码这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Ma…

    2022年4月19日
    82
  • mysql之视图、索引

    mysql之视图、索引视图 什么是视图 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的。一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。 视图的作用 定制用户数据,聚焦

    2022年7月22日
    10
  • PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)

    PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)kezunhai@gmail.comhttp://blog.csdn.net/kezunhai    浮雕效果可谓花样百出,但他们主要是基于图像相邻像素的差值来实现的。对于大多数图像而

    2022年6月20日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号