我收到GCM推送通知后尝试更新列表视图。 我正在从数据库中更新listView(而不是从推送本身),但是当我试图获取视图时,它会给我null并崩溃(尝试" GetView,getActivity ... findViewById)。
任何其他建议我该怎么办?
以下是我的代码的小样本: [GCM班级]:
public void onMessageReceived(String from, Bundle data) {
DataBaseHelper myDbHelper = new DataBaseHelper(this.getApplicationContext());
if(myDbHelper.checkDataBase()) {
DbServer gsh = new DbServer(getApplicationContext(),"getSQLiteHistory");
//This might be an issue:
gsh.setListener(new AlertsList());
gsh.mContext=getApplicationContext();
gsh.execute();
}
[DataBaseHelper Class]
...
//publish the list via listener
mListener.finishRefresh(rowItems);
监听器:
public interface OnTaskCompleted{
void finishRefresh(List<RowItem> rowItems);
}
[AlertList Class(包含&#34; finishRefresh&#34;功能)]
listView = (ListView) getView().findViewById(R.id.list); //This is null
任何人都可以指出在GCM之后我在哪里可以让View更新它?
提前致谢!
叶兰。
答案 0 :(得分:0)
getView()为null。 我做了什么,我把“finishRefresh”函数分离成一个新函数,一旦它来自CGM类,然后从inflater得到了视图,只有那时我有正确的视图(没有空)