考虑这种情况:
现在,由于在subscription.unsubscribe();
上调用OnDestory();
,我无法将数据保存在数据库中。
问题: 什么是最好的模式,以便在任务完成后不应该有数据丢失?
答案 0 :(得分:1)
我认为,只要您不希望在当前Activity
中看到操作的结果并且操作非常长,就不应该在Activity
内调用它。在我看来,您应该在Service
内执行此操作,可以从Activity
调用。您也可以在Service
内使用RxJava。操作完成后,您可以向Activity
或其他位置发送通知(例如,通过像Otto这样的事件总线或通过自定义BroadcastReceiver
或通过使用RxJava实现的自定义事件总线)。在这种情况下,您将独立于Activity
生命周期,无论一个Activity
被销毁或暂停,都将执行操作。