长时间运行的2-3分钟异步任务填充数据库



我正在考虑在应用程序设置中添加一个按钮,该按钮启动了一个任务以使用API端点的数据更新SQLITE数据库以供离线使用。

此任务可能需要2-3分钟,一个很大的问题是,如果它因更改活动而中断,等等。

我应该如何处理?有没有一种方法可以防止用户切换活动,或者我应该显示数据库正在更新并显示进度栏的消息?

您应该使用服务进行长期运行。这样,您可以为进度状态提供API,回电以完成工作等。

  • 用户单击活动以启动任务 ->启动服务
  • 活动现在可以回电以更新状态栏
  • 如果用户导航并来返回,活动的新实例可以显示当前任务状态。

从来没有一种方法可以阻止用户切换活动(尽管这很可能是在服务中进行的)。即使可以,也无法阻止他们拉电池。始终假设长期运行过程可以随时异步杀死,并相应地进行编程。

最新更新