Android:如何在GCM推送后获得另一个片段的视图?

时间:2015-12-24 22:31:45

标签: android android-fragments android-listview google-cloud-messaging

我收到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更新它?

提前致谢!

叶兰。

1 个答案:

答案 0 :(得分:0)

自GCM启动此进程(服务)以来,

getView()为null。 我做了什么,我把“finishRefresh”函数分离成一个新函数,一旦它来自CGM类,然后从inflater得到了视图,只有那时我有正确的视图(没有空)