私のアプリケーションでは、サーバーから映画をダウンロードしています。それらのいくつかは非常に大きい(4GB以上)。自分のダウンロードマネージャーをサービスとして実装しようとしましたが、うまくいきませんでした。一部のデバイスでは、アプリが予告なしにクラッシュし、全体的にダウンロードが遅すぎるようです。
そのため、AndroidのデフォルトのDownloadManagerを使用したかったのですが、唯一の問題は、一時停止/再開できないことです。
それを実装する方法はありますか?
私のアプリケーションでは、サーバーから映画をダウンロードしています。それらのいくつかは非常に大きい(4GB以上)。自分のダウンロードマネージャーをサービスとして実装しようとしましたが、うまくいきませんでした。一部のデバイスでは、アプリが予告なしにクラッシュし、全体的にダウンロードが遅すぎるようです。
そのため、AndroidのデフォルトのDownloadManagerを使用したかったのですが、唯一の問題は、一時停止/再開できないことです。
それを実装する方法はありますか?
別の非常に印象的な図書館を見つけました
Downloads.Impl.COLUMN_CONTROLをDownloads.Impl.CONTROL_PAUSEDに設定すると、一時停止できます。
そして、Downloads.Impl.COLUMN_CONTROL、Downloads.Impl.CONTROL_RUNを設定して再開します
public void pauseOrResumeDownload(boolean pause, long... ids) {
ContentValues values = new ContentValues();
if (pause) {
values.put(Downloads.Impl.COLUMN_CONTROL, Downloads.Impl.CONTROL_PAUSED);
} else {
values.put(Downloads.Impl.COLUMN_STATUS, Downloads.Impl.STATUS_PENDING);
values.put(Downloads.Impl.COLUMN_CONTROL, Downloads.Impl.CONTROL_RUN);
}
mResolver.update(mBaseUri, values, getWhereClauseForIds(ids), getWhereArgsForIds(ids));
}