我正在尝试处理用户在 AsyncTask 中的 Http 请求期间丢失数据连接的情况。目前,如果发生这种情况并且应用程序停止,AsyncTask 将永远不会完成执行。我什至无法检查 isCancelled() 因为 Http 请求只是在一个函数调用上停止,所以我无法实现循环或任何东西。
我在 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);