- Android ネットワーク接続に制限はありますか?
- バックグラウンドで実行されているネットワーク接続の数を制限したい場合、どうすれば達成できますか?
- AsyncTask でネットワーク接続を開始し、 を使用してキャンセルすると
AsyncTask_object.cancel(true)
、対応するすべての内部ネットワーク接続が閉じられますか? - Android で実行中のネットワーク接続をキャンセルするには?
2 に答える
3番目の質問への回答:
AsyncTask_object.cancel(true)を呼び出しても、内部接続は閉じられません。代わりに、AsyncTaskクラスのコールバックメソッドonCancelled()が呼び出されます。したがって、AsyncTaskで実行されているすべての作業をキャンセル/ロールバックするonCancelled()でコードを記述するのはあなたの責任です。isCancelled()を呼び出して、タスクが計算されているかどうかを確認できます。
例:
if(task.getStatus() != AsyncTask.Status.FINISHED)
task.cancel(true);
AsyncTaskの場合:
@Override
protected void onCancelled() {
//cancell/rollback the work being done
}
Linuxベースなので、制限が何であるかはわかりません。
3.
方法で確認するとよいと思いますonCancelled(Object)
。
4.
これを行うとします:
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
これで接続が閉じます。connec.getNetworkInfo(0).setState(NetworkInfo.State.DISCONNECTED);
http://vikaskanani.wordpress.com/2011/08/03/android-proper-way-to-cancel-asynctask/もご覧ください。