短信到达后,我尝试更新我的列表。我得到正确的接收器,但是当我尝试将接收器发送到我的班级时,我在某些手机中收到以下错误。
05-20 09:50:57.749: E/AndroidRuntime(8873): java.lang.NullPointerException
05-20 09:50:57.749: E/AndroidRuntime(8873): at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297)
05-20 09:50:57.749: E/AndroidRuntime(8873): at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46)
05-20 09:50:57.749: E/AndroidRuntime(8873): at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116)
05-20 09:50:57.749: E/AndroidRuntime(8873): at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 09:50:57.749: E/AndroidRuntime(8873): at android.os.Looper.loop(Looper.java:153)
05-20 09:50:57.749: E/AndroidRuntime(8873): at android.app.ActivityThread.main(ActivityThread.java:5299)
05-20 09:50:57.749: E/AndroidRuntime(8873): at java.lang.reflect.Method.invokeNative(Native Method)
05-20 09:50:57.749: E/AndroidRuntime(8873): at java.lang.reflect.Method.invoke(Method.java:511)
05-20 09:50:57.749: E/AndroidRuntime(8873): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
05-20 09:50:57.749: E/AndroidRuntime(8873): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
05-20 09:50:57.749: E/AndroidRuntime(8873): at dalvik.system.NativeStart.main(Native Method)
我的代码在某些手机中正常工作。
我已使用以下代码发送广播:
Intent intent = new Intent(filtering);
intent.putExtra(RESULT, result);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
我在以下代码中得到接收器:
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
int resultCode = bundle
.getInt(NormalIncommingTextService.RESULT);
if (resultCode == Activity.RESULT_OK) {
RefreshList(getActivity());
}
}
}
};
我已经使用以下代码在 onResume 和 onPause 中注册和注销了我的接收器:
LocalBroadcastManager.getInstance(this).registerReceiver(Home.receiver,
new IntentFilter(NormalIncommingTextService.NOTIFICATION));
// registerReceiver
LocalBroadcastManager.getInstance(this).unregisterReceiver(Home.receiver); // unregisterReceiver
我在 SO 中进行了很多搜索,但找不到有效的解决方案。
在此先感谢您的时间
如果您想查看我的代码的任何部分,请询问我。
NormalIncommingTextService.NOTIFICATION
与filtering
我的代码相同。
// 编辑
这是第 297 行 @LocalBroadcastManager
br.receivers.get(j).receiver.onReceive(mAppContext, br.intent);
有关grepcode的更多信息,但我不知道有什么问题。更新一个片段数据时在课堂上发生此错误FragmentActivity
,我在 Activity 上对其进行了测试并且工作正常
PS:在某些手机上更新数据没有任何问题FragmentActivity
//回答
我已经解决了这个问题,使用普通BroadCastReceiver
而不是LocalBroadcastManager