微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – NullPointerException当使用LocalBroadcastManager时

我试图使用LocalbroadcastManager与我的自定义意图.
看来这是非常挑剔的意图,如果我这样发送意图:

在Myintents.java中我声明

public static final String LOCATION_UPDATE = "com.example.myapp.location_update";

后来在广播发送者我做:

Intent intent = new Intent(MyIntents.LOCATION_UPDATE);
localbroadcastManager.sendbroadcast(intent);

然后我得到这个例外:

05-05 02:23:29.914: E/AndroidRuntime(6952): FATAL EXCEPTION: main 
05-05 02:23:29.914: E/AndroidRuntime(6952): java.lang.NullPointerException 
05-05 02:23:29.914: E/AndroidRuntime(6952): at android.support.v4.content.LocalbroadcastManager.executePendingbroadcasts(LocalbroadcastManager.java:297) 
05-05 02:23:29.914: E/AndroidRuntime(6952): at android.support.v4.content.LocalbroadcastManager.access$000(LocalbroadcastManager.java:46)  
05-05 02:23:29.914: E/AndroidRuntime(6952): at android.support.v4.content.LocalbroadcastManager$1.handleMessage(LocalbroadcastManager.java:116) 
05-05 02:23:29.914: E/AndroidRuntime(6952): at android.os.Handler.dispatchMessage(Handler.java:99)

但是如果我使用一个显式字符串

Intent intent = new Intent("my-intent");

一切都很好.

怎么了?为什么我不能在另一个类中定义意图名称

解决方法

我刚刚遇到这个. NPE是针对您正在触发的事件(MyIntents.LOCATION_UPDATE)的注册侦听器(读取:receiver)未被托管它的组件实例化的结果.

检查你想对这个广播做出反应的事情实际上已经在正确的时候被实例化了(可能是主机活动/片段).

原文地址:https://www.jb51.cc/android/311827.html

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

相关推荐