在广播接收器中保存状态以便稍后在UI中使用

时间:2017-01-11 23:14:54

标签: android android-fragments android-broadcastreceiver android-sharedpreferences

我有一个广播接收器,可以跟踪一些外部事件并根据需要对其进行操作。我的应用程序中还有一个片段,显示最后一个事件/状态是什么的状态摘要。

现在我正在使用共享首选项将此状态保存在接收器中,然后使用onSharedPreferenceChange侦听器更新当前正在查看的片段。

如果我这样做的话,我正和自己辩论?或者在片段启动时使用片段注册广播接收器,而不是使用共享首选项。

但我遇到的问题是片段在打开时无法获得当前状态,并且在广播另一个事件之前不会知道发生了什么。

这是否适用于共享偏好?状态将从每几秒一次变化到30秒以上。

如果每秒或更少时间收到更新/状态更改,那么会在片段中使用广播接收器吗?

1 个答案:

答案 0 :(得分:0)

即使你使用了BroadcastReceiver,你仍然需要从某个地方获取初始事件/状态信息。因此,无论如何,您都需要保留事件/状态信息。由于您可能只需要保留一些值(并且不需要经常访问它们),因此使用SharedPreferences是一种非常合理的方法。