我需要下载一个大文件。我需要将DownloadManger
类用于api 9或更高版本。但我希望我的下载继续,即使用户暂停Activity
或按下Back
。。。或者用户杀死CCD_ 4。一旦他开始下载过程,它应该只有在完成相应的下载后才停止。如果同时网络连接中断,下载应该从停止的地方恢复,即不应该从头开始。
对于这个用例,只依赖Activity
不是一个好主意。有两种选择:
选项1
- 除了
Activity
之外,还可以使用Service
。在onPause()
中,启动Service
,在"活动"的onResume()
中,停止Service
Service
本身也应该注册ACTION_DOWNLOAD_COMPLETE
广播- 如果您在"活动"处于后台时(即在
Service
中)收到广播,则可以发布通知或祝酒词或用户单击返回Activity
的任何内容。您还应该注册ACTION_NOTIFICATION_CLICKED
选项2
- 只需创建一个已注册
BroadcastReceiver
的清单来侦听ACTION_DOWNLOAD_COMPLETE
广播 - 在
onReceive()
中,下载完成后,您可以随心所欲。同样,如果"活动"已经在前台,则可以直接更新UI。否则,用户单击Notification
,您可以在ACTION_NOTIFICATION_CLICKED
中处理它