そのため、Asynctask を使用して URL を読み込んでおり、ダウンロードを開始する前に考えられるすべての接続の問題を処理しましたが、ダウンロード中にデータから Wi-Fi に切り替えると、アプリが強制終了します。質問は次のとおりです。
サービスで Asynctask を実行する必要がありますか、または接続が利用可能なときにサービスを一時停止して再開する方法はありますか? 接続が確立された直後にダウンロードを開始するレシーバーが既にあります。
if (isOnline()) {
getData();
} else {
IntentFilter intentFilter = new IntentFilter(
"android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (isOnline()) {
unregisterReceiver(this);
getData();
}
}
}, intentFilter);
}
しかし、接続が利用可能になった後、どうすれば Asynctask を再開できますか?