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