大きなファイルをダウンロードする必要があります。DownloadManger
api9以降のバージョンのクラスを使用する必要があります。Activity
ただし、ユーザーがを一時停止したり、を押しBack
たり、ユーザーがを強制終了したりしても、ダウンロードを続行したいと思いますActivity
。彼がダウンロードプロセスを開始すると、それぞれのダウンロードが終了した後にのみ停止する必要があります。その間にネットワーク接続が切断された場合、ダウンロードは停止した場所から再開する必要があります。つまり、最初から開始しないでください。
質問する
662 次
1 に答える
0
Activity
このユース ケースをのみに依存するのは得策ではありません。次の 2 つのオプションがあります。
オプション1
Service
に加えてa を使用しますActivity
。でをonPause()
開始し、Service
アクティビティonResume()
で を停止しService
ます。Service
自体もACTION_DOWNLOAD_COMPLETE
ブロードキャストに登録する必要があります。- アクティビティがバックグラウンド、つまり にあるときにブロードキャストを受信した場合は
Service
、通知やトースト、またはユーザーがクリックして に戻るものを投稿できますActivity
。にも登録する必要がありますACTION_NOTIFICATION_CLICKED
。
オプション 2
- ブロードキャスト
BroadcastReceiver
をリッスンするマニフェスト登録を作成するだけです。ACTION_DOWNLOAD_COMPLETE
onReceive()
ダウンロードが完了したら、好きなことを行うことができます。繰り返しますが、Activity が既にフォアグラウンドにある場合は、UI を直接更新できます。それ以外の場合、ユーザーが をクリックするNotification
と、 で処理できますACTION_NOTIFICATION_CLICKED
。
于 2012-07-23T09:16:36.843 に答える