我正在构建一个Android应用,可用于从视频列表中下载视频并离线观看。我正在使用下载管理器对下载进行排队。该应用程序使用广播接收器来查找下载是否已完成。
我正在维护我的应用中的下载列表。每当队列更新时,此列表都会序列化为磁盘,并在应用程序启动时进行反序列化。
但是,如果应用程序在下载完成之前被终止,它将无法接收广播,并且队列也不会更新。
解决此问题的最佳方法是什么?如果是服务那么什么样的服务呢?
答案 0 :(得分:0)
下载前
// Acquire partial wake lock to ensure that the CPU is running.
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.FETCHER_TAG);
mWakeLock.acquire();
在完成失败或成功之后
if (mWakeLock != null && mWakeLock.isHeld()) mWakeLock.release();
mWakeLock = null;