如何在活动处于后台时处理数据更改并查看更新

时间:2016-02-21 20:07:03

标签: android android-lifecycle

我有一个有2个活动的应用程序A - > B.从B开始,用户可以更新A显示的数据,因此我希望A在用户导航时显示新数据(实际上并非如此简单,涉及一些网络,因此可以随时更新数据)。

活动正在侦听ddbb更改,以便在数据更改时更新视图。问题是数据可能会在活动处于后台时发生变化,因此我不确定何时以及如何监听更改。我可以想到两种方法:

  1. 在整个Activity生命周期(onCreate - onDestroy)中侦听更改,并在数据更改时更新视图。这将从后台活动更新视图。
  2. 仅在活动处于活动状态或显示时(在onStart / onStop或onResume / onPause之间)监听更改,并在每次活动到达前台时强制进行视图更新(因为在活动未执行时可能发生了更改。听)。
  3. 混合方法;让监听器保持整个生命周期,但只有在活动到达前台时才更新视图。
  4. 我不确定在后台处理数据观察的正确方法是什么。 选项2听起来更合理,但是当活动到达前台时必须更新视图可能导致用户开始与活动交互时的UI滞后。 每次更新数据时,选项1都会导致大量更新。

    对此的想法?

1 个答案:

答案 0 :(得分:0)

您可以选择适合您特定用例的三个选项中的任何一个。虽然我会说常规用途是启动/停止。 onStart表示活动以某种方式(完全或部分)对用户可见,而onStop表示该活动绝对不可见。因此,如果您根本不关心在活动未显示时更新UI,请使用这些生命周期状态。

您可能需要准备好捕获在活动再次启动之前可能已经错过的数据(例如,如果用户按下主页按钮,然后通过任务切换器返回活动)因此,可能需要再次执行查询并从头开始重建视图内容。