我的应用程序上有一个启动页面,我想做的是启动一个后台任务来开始下载东西,以便在用户需要它们时准备好它们。
例如,一周的照片或其他东西。
启动画面开始(启动后台任务)
启动画面完成(后台任务仍在工作)
主屏幕启动(临时“加载”占位符)
用户导航到另一个活动
下载完成
用户返回主屏幕,该屏幕更新为一周的图片
现在我知道异步任务,但我听说异步任务会被取消,finish()
而且我也听说它们不会被取消。
这种任务,后台加载是否最好在服务中处理?任何人都可以为我提供有关在后台加载此类内容的教程吗?
编辑:
人们提到 UI 工作应该在 UI 中,而非 UI 中的非 UI 中。我考虑过处理程序,但是当当前活动不活动时,侦听器是否工作?
假设我在 main 中启动一个处理程序,然后切换页面。当我回来时,我很确定主 UI 不会更新,因为在我查看另一个页面时侦听器没有触发。
我假设我必须创建一个类来存储变量或其他东西。服务完成后,它会将“pic_of_week_loaded”设置为 true,并且当主程序重新加载时,它会检查此 var。我该怎么办?