我的主要活动中有一个异步任务,当我按下按钮时它会运行。现在由于某种原因,如果请求时间过长(由于服务器不可用),我什至无法使用后退按钮关闭活动。有谁知道为什么会这样?从这个Android AsyncTask blocks back key dispatch Event我了解到后退按钮应该自动终止我的活动并完成异步任务。但这似乎并没有发生。我可以退出活动的唯一方法是按下我的安卓手机上的主页按钮,这当然只是简单地保存状态,所以一旦我再次打开活动,异步任务仍然会继续执行。
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);
}
}