接続の変更をリッスンするために.Imを使用してAsyncTask
画像をダウンロードする場所を使用しています。ネットワークが失われたときに一時停止し、接続が回復した後に続行する方法を知りたい. 誰かがスニペット/コードを提供できると助かります。HttpUrlConnection
BroacastReciever
ありがとうございました。
接続の変更をリッスンするために.Imを使用してAsyncTask
画像をダウンロードする場所を使用しています。ネットワークが失われたときに一時停止し、接続が回復した後に続行する方法を知りたい. 誰かがスニペット/コードを提供できると助かります。HttpUrlConnection
BroacastReciever
ありがとうございました。
私の知る限り、AsyncTask
一時停止することはできません。
ドキュメントには、一度だけ実行できると書かれています。したがって、AsyncTask を一時停止して再開しようとすると、IllegalStateException
.
できること:
内doInBackground()
で、一定の時間間隔が経過した後、ネットワーク接続を確認し続けます。ネットワークが利用できない場合は、ネットワークをキャンセルして、データをアプリケーション キャッシュに保存します。特定のタイムアウト後にネットワークをチェックし続けるタイマーを開始します。ネットワークが再び戻ったら、中断したところから新しい AsyncTask を開始します (キャッシュに何があるかを判断するため)。最後の部分は、サーバーからダウンロード済みの量と残りの量に関するマーカーが必要になるため、私にはよくわかりません。すべてのサーバーがそれを提供しているわけではないと思います。これは、再開可能なダウンロードとそうでないダウンロードがあるという事実から明らかです。
もう 1 つの非常に汚い方法は、ネットワーク接続が失われたときにバックグラウンド スレッドをスリープ状態にすることです。
何かのようなもの :
if(networkConnectivity == false)
do
{
sleep(5000); // pauses the thread for 5 seconds
}while(networkConnectivity == false);