我正在从新线程发送“广播”。并在com.internectics.fragment.AddPackFragment $ 6.run中收到“java.lang.NullPointerException”错误。我在这里强调一下: 1.这些代码在DialogFragment的子类中 2.如果我删除“getActivity()。sendBroadcast(intent);”这一行,它也不例外。所以我认为这是根本原因。
感谢是否有人可以评论我的问题并帮助我解决问题
new Thread() {
public void run() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//some other codes skipped here, including saving data to persistence
Intent intent = new Intent();
intent.setAction(Global.BROADCAST_ACTION_UPDATE_MASTER_VIEW);
intent.putExtra(Global.KEY_FROM, Global.BROADCAST_EXTRA_FROM_NEW_PACK);
getActivity().sendBroadcast(intent);
}
});
};
}.start();
答案 0 :(得分:1)
在执行线程之前,您是否可以获得对活动的最终引用,并在运行方法中使用该引用?在使用它之前一定要检查它是否为空
答案 1 :(得分:0)
目前还不清楚,为什么你需要一个带有runOnUiThread(...)的新线程来执行此操作。相应于http://developer.android.com/reference/android/content/Context.html#sendBroadcast%28android.content.Intent%29:
This call is asynchronous; it returns immediately, and you will continue executing while the receivers are run.