Android 从BroadcastReceiver更新ListView-适配器nullpointerexception
我有一个Android 从BroadcastReceiver更新ListView-适配器nullpointerexception,android,listview,android-listview,broadcastreceiver,android-broadcast,Android,Listview,Android Listview,Broadcastreceiver,Android Broadcast,我有一个BroadcastReceiver,它在设定的时间创建通知。创建通知时,我想更新我的列表视图,它包含在名为PendingFragment的片段中。我意识到只有在应用程序运行时,我才能做到这一点——这很好 因此,在我的BroadcastReceiver中,我执行以下操作: PendingFragment.getInstance().UpdateSelist() 然后在PendingFragment中有getInstance()方法和updateTheList()方法 及 refreshMy
BroadcastReceiver
,它在设定的时间创建通知。创建通知时,我想更新我的列表视图
,它包含在名为PendingFragment
的片段中。我意识到只有在应用程序运行时,我才能做到这一点——这很好
因此,在我的BroadcastReceiver
中,我执行以下操作:
PendingFragment.getInstance().UpdateSelist()代码>
然后在PendingFragment
中有getInstance()方法和updateTheList()方法
及
refreshMyAdapter()
是自定义适配器的子类。它所做的只是删除一些项,然后调用simpleapt.notifyDataSetChanged()代码>
我的问题是在updateTheList()
中有一个nullpointerexception
,这可能意味着simpleAdpt为null。我不知道为什么,因为我在屏幕上可以看到包含项目的列表视图,所以它怎么可能是空的?正如Luksprog
在评论中指出的那样,我的片段的实例
没有理由会有“有效的数据成员”
要解决这个问题,在片段的onCreateView()
中,只需将instance=this代码>建议不要在接收器中执行长期任务,因为接收器的寿命通常为10秒左右,因此您应该通过服务执行任务。我只创建一个通知,并在我的片段中调用updateList()方法。正在调用该方法,因此我知道问题不是接收器“死亡”。然后,也发布片段代码,可能有人可以在那里找到错误!:)PendingFragment
是包含列表的片段吗?如果是,我不明白您为什么希望实例
具有有效的数据成员。@Luksprog yes-PendingFragment包含该列表。请你解释一下第二句话好吗:-)
private static PendingFragment instance;
public static PendingFragment getInstance() {
if (null == instance) {
instance = new PendingFragment();
}
return instance;
}
public void updateTheList() {
simpleAdpt.refreshMyAdapter();
}