静的Webサービスクラスを使用してHTTPGETリクエストを呼び出しており、ユーザーが戻るボタンを押したときにリクエスト/AsyncTaskをキャンセルできるようにしたいと考えています。
doInBackgroundでisCancelled()を定期的にチェックします。これは、他のすべての操作で機能しますが、ユーザーがヒットバックしたときにHTTPリクエストが発生している場合、結果が受信されるかタイムアウトになるまで、タスクはキャンセルされません。
WebServices.getDeviceId()への静的呼び出しのため、HTTPクライアントのハンドルがないため、httpclient.getConnectionManager()。shutdown();を使用できません。接続を停止します。誰かが私がこの問題を解決する方法について何かアイデアがありますか?
@Override
protected Void doInBackground(Void... params) {
if((mInstance.getDeviceId() == null) && !isCancelled()) {
String deviceId = WebServices.getDeviceId();
}
return null;
}