RxAndroid - 在活动被销毁时保存数据

时间:2017-09-07 07:32:33

标签: android rx-java rx-android

考虑这种情况:

  • 在Activity1执行计算繁重的任务(假设需要20秒)
  • 用户在第10秒杀死了Activity1
  • 任务完成后,将数据保存在数据库中。 (不需要UI更新)

现在,由于在subscription.unsubscribe();上调用OnDestory();,我无法将数据保存在数据库中。

问题: 什么是最好的模式,以便在任务完成后不应该有数据丢失?

1 个答案:

答案 0 :(得分:1)

我认为,只要您不希望在当前Activity中看到操作的结果并且操作非常长,就不应该在Activity内调用它。在我看来,您应该在Service内执行此操作,可以从Activity调用。您也可以在Service内使用RxJava。操作完成后,您可以向Activity或其他位置发送通知(例如,通过像Otto这样的事件总线或通过自定义BroadcastReceiver或通过使用RxJava实现的自定义事件总线)。在这种情况下,您将独立于Activity生命周期,无论一个Activity被销毁或暂停,都将执行操作。