ボタンを押すと実行されるメイン アクティビティに Async タスクがあります。なんらかの理由で、リクエストに時間がかかりすぎると(サーバーが利用できないため)、戻るボタンを使用してアクティビティを閉じることさえできません。なぜこれが起こっているのか誰にも分かりますか?このAndroid AsyncTask ブロック バック キー ディスパッチ イベントから、戻るボタンがアクティビティを自動的に強制終了し、非同期タスクを終了する必要があることを理解しています。しかし、それは起こっていないようです。アクティビティから抜け出す唯一の方法は、Android携帯のホームボタンを押すことです。もちろん、状態を保存するだけなので、アクティビティを再度開くと、非同期タスクは引き続き実行されます。
class mytask extends AsyncTask<Void,Void,String>
{
HttpResponse response;
@Override
protected void onPreExecute()
{
// TODO Auto-generated method stub
super.onPreExecute();
}
@Override
protected String doInBackground(Void... arg0)
{
// TODO Auto-generated method stub
Log.d("In","IN");
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("someurl");
try
{
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", "somename"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpclient.execute(httppost);
p=inputStreamToString(response.getEntity().getContent()).toString();
return p;
}
catch (ClientProtocolException e)
{
// TODO Auto-generated catch block
}
catch (IOException e)
{
// TODO Auto-generated catch block
}
return null;
}
protected void onPostExecute(String result)
{
// TODO Auto-generated method stub
super.onPostExecute(result);
}
}