我正在考虑在应用程序设置中添加一个按钮,该按钮启动了一个任务以使用API端点的数据更新SQLITE数据库以供离线使用。
此任务可能需要2-3分钟,一个很大的问题是,如果它因更改活动而中断,等等。
。我应该如何处理?有没有一种方法可以防止用户切换活动,或者我应该显示数据库正在更新并显示进度栏的消息?
您应该使用服务进行长期运行。这样,您可以为进度状态提供API,回电以完成工作等。
- 用户单击活动以启动任务 ->启动服务
- 活动现在可以回电以更新状态栏
- 如果用户导航并来返回,活动的新实例可以显示当前任务状态。
从来没有一种方法可以阻止用户切换活动(尽管这很可能是在服务中进行的)。即使可以,也无法阻止他们拉电池。始终假设长期运行过程可以随时异步杀死,并相应地进行编程。