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

时间:2017-11-29 19:47:09

标签: android android-asynctask

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

这项任务可能需要2-3分钟,如果因改变活动而中断,则会出现一个大问题。

我该如何处理?有没有办法阻止用户切换活动,还是只显示数据库正在更新的消息并显示进度条?

2 个答案:

答案 0 :(得分:1)

您应该将服务用于长时间运行的任务。这样,您就可以为进度状态提供API,回调完成等等。

  • 用户点击活动开始任务 - >发射服务
  • 活动现在可以回电更新状态栏
  • 如果用户离开并来 返回,Activity的新实例可以显示当前任务状态。

答案 1 :(得分:0)

永远无法阻止用户切换活动(尽管这应该最有可能在服务中完成)。即使你可以,也无法阻止他们拉电池。始终假设可以随时异步杀死长时间运行的进程,并相应地进行编程。