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

RxAndroid-在活动被销毁时保存数据,android,rx-java,rx-android,Android,Rx Java,Rx Android,考虑以下情况: 在Activity1执行计算量大的任务(假设需要20秒) 用户在第10秒杀死了Activity1 任务完成后,将数据保存到数据库中。(不需要UI更新) 现在,由于subscription.unsubscripte(),我无法将数据保存到数据库中 问题: 最好的模式是什么,这样在任务完成后就不会有数据丢失?我认为,只要您不希望在当前的活动中看到操作的结果,并且操作非常长,就不应该在活动中调用它。我认为,您应该在服务中执行此操作,该服务可以从活动调用。您也可以在服务中使用RxJa

考虑以下情况:


  • 在Activity1执行计算量大的任务(假设需要20秒)
  • 用户在第10秒杀死了Activity1
  • 任务完成后,将数据保存到数据库中。(不需要UI更新)
现在,由于
subscription.unsubscripte()OnDestory()上调用code>,我无法将数据保存到数据库中

问题:
最好的模式是什么,这样在任务完成后就不会有数据丢失?

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

在活动1执行计算繁重的任务?我想你应该看看
JobIntentService