获得同步服务后刷新片段视图

时间:2013-03-29 09:57:52

标签: android android-fragments synchronize

我有一个以一定间隔运行的同步服务,并根据服务器数据更新客户端。现在,如果用户对服务器数据进行了任何更改,例如从列表视图中删除项目,则该更改应反映到相应的视图片段。

问题是 - 我在片段中得到了更改,但这不是自动的。这意味着我必须来回走回我的相关片段才能看到我的更新。

然后我应该如何从后台运行的同步服务得到通知,我的相应片段视图现在已经更改,以便我可以调用我的刷新功能 片段视图?

注意:我不想在一定时间间隔内反复刷新片段。我只想要       我的片段视图发生变化时刷新。

更新:

我得到的适配器计数给出了片段中列表视图项的计数。 因此,每当我获得更改的计数时,我需要更新/刷新/重新加载片段。所以我的计数将作为更改片段视图的触发器。

类似于:

if adapter.getCount() gets changed  //how to get notified about this change
{
        FragmentTransaction transactionOld =getActivity().getSupportFragmentManager().beginTransaction();

        transactionOld.detach(this).commit();

     FragmentTransaction transactionNew = getActivity().getSupportFragmentManager().beginTransaction();

        transactionNew.attach(this).commit();
}

1 个答案:

答案 0 :(得分:1)

您应该在Fragment中使用BroadcastReceiver,注册onStart()并在onStop()取消注册。

当您的SyncServices完成并更新了数据后,只需使用sendBroadcast()发送广播,即可通知您的Fragment是否可见。

当然,您必须为Broadcast设置自定义操作,例如com.myapp.ACTION_SYNC,但您会在阅读docs时了解到这一点。