6

私のアプリケーションでは、サーバーから映画をダウンロードしています。それらのいくつかは非常に大きい(4GB以上)。自分のダウンロードマネージャーをサービスとして実装しようとしましたが、うまくいきませんでした。一部のデバイスでは、アプリが予告なしにクラッシュし、全体的にダウンロードが遅すぎるようです。

そのため、AndroidのデフォルトのDownloadManagerを使用したかったのですが、唯一の問題は、一時停止/再開できないことです。

それを実装する方法はありますか?

4

3 に答える 3

2

ソースコードを見るとわかりますが、これはサポートされていません(ただし、DownloadManager障害が発生した後やシステムの再起動後に自動的に再試行します)。

これまたはこれをまだ見たことがない場合は、これらの機能を使用して独自のサービスを自分で実装する方法について、いくつかの有用な情報があるようです。

于 2013-05-23T04:23:29.317 に答える
1

別の非常に印象的な図書館を見つけました

https://github.com/Trinea/android-common

例

于 2014-03-12T08:58:55.437 に答える
1

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));
}
于 2019-04-16T10:02:44.223 に答える