【发布时间】:2012-08-30 17:17:33
【问题描述】:
我的应用上有一个启动页面,我想做的是启动后台任务以开始下载内容,以便在用户需要时准备好。
例如一周的照片或其他东西。
启动画面启动(启动后台任务)
启动画面完成(后台任务仍在工作)
主屏幕启动(临时“加载”占位符)
用户导航到另一个活动
下载完成
用户返回主屏幕,主屏幕会更新本周图片
现在我知道异步任务,但我听说异步任务在 finish() 上被取消,而且我还听说它们没有被取消。
这种任务,后台加载是否最好在服务中处理? 谁能给我一个在后台加载这样的东西的教程?
编辑:
人们都在提到UI工作应该在UI中,非UI在非UI中。我考虑过处理程序,但是当当前活动不活动时,侦听器是否工作?
假设我在 main 中启动了一个处理程序,然后切换页面。当我回来时,我很确定主 UI 不会更新,因为在我查看另一个页面时侦听器没有触发。
我假设我必须创建一个类来存储变量或其他东西。服务完成后,它会将“pic_of_week_loaded”设置为 true,并且当主程序重新加载时,它会检查此 var。我该怎么办?
【问题讨论】:
-
考虑使用DownloadManager?
-
DownloadManager 是 API 9,这可能是个问题
-
Dashboard 始终是检查优先支持哪些版本的好工具。
标签: java android service android-asynctask