AsyncTask での Http リクエスト中にユーザーがデータ接続を失う状況を処理しようとしています。現在、これが発生してアプリが停止した場合、AsyncTask は実行を終了しません。isCancelled() をチェックすることさえできません。なぜなら、Http リクエストは 1 つの関数呼び出しで停止するだけだからです。そのため、ループなどを実装することはできません。
UIスレッドで次を使用していますが、タスクがタスク内からキャンセルされたかどうかを確認する方法がわかりません:
task = new LoginTask();
task.execute(this, mUsername, mPassword);
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
if (task != null && task.getStatus() == AsyncTask.Status.RUNNING)
{
task.cancel(true);
}
}
}, 5000);