0

大きなファイルをダウンロードする必要があります。DownloadMangerapi9以降のバージョンのクラスを使用する必要があります。Activityただし、ユーザーがを一時停止したり、を押しBackたり、ユーザーがを強制終了したりしても、ダウンロードを続行したいと思いますActivity。彼がダウンロードプロセスを開始すると、それぞれのダウンロードが終了した後にのみ停止する必要があります。その間にネットワーク接続が切断された場合、ダウンロードは停止した場所から再開する必要があります。つまり、最初から開始しないでください。

4

1 に答える 1

0

Activityこのユース ケースをのみに依存するのは得策ではありません。次の 2 つのオプションがあります。

オプション1

  1. Serviceに加えてa を使用しますActivity。でをonPause()開始し、ServiceアクティビティonResume()で を停止しServiceます。
  2. Service自体もACTION_DOWNLOAD_COMPLETEブロードキャストに登録する必要があります。
  3. アクティビティがバックグラウンド、つまり にあるときにブロードキャストを受信した場合はService、通知やトースト、またはユーザーがクリックして に戻るものを投稿できますActivity。にも登録する必要がありますACTION_NOTIFICATION_CLICKED

オプション 2

  1. ブロードキャストBroadcastReceiverをリッスンするマニフェスト登録を作成するだけです。ACTION_DOWNLOAD_COMPLETE
  2. onReceive()ダウンロードが完了したら、好きなことを行うことができます。繰り返しますが、Activity が既にフォアグラウンドにある場合は、UI を直接更新できます。それ以外の場合、ユーザーが をクリックするNotificationと、 で処理できますACTION_NOTIFICATION_CLICKED
于 2012-07-23T09:16:36.843 に答える