下面我有一个取消我的asynctask和ProgressDialog
的方法。代码运行良好但是当你按下后退按钮时,它会停止所有内容,但它会让用户盯着一个无人居住的列表视图。所以这里的想法是,当用户点击后退按钮时,它会停止asynctask和ProgressDialog
,而不是让他们看着一个未填充的列表视图,我希望它也将它们带回主活动。任何人都可以帮助我实现这个目标吗?
@Override
public void onBackPressed()
{
/** If user Pressed BackButton While Running Asynctask
this will close the ASynctask.
*/
if (mTask != null && mTask.getStatus() != AsyncTask.Status.FINISHED)
{
mTask.cancel(true);
}
super.onBackPressed();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
/** If Activity is Destroyed While Running Asynctask
this will close the ASynctask. */
if (mTask != null && mTask.getStatus() != AsyncTask.Status.FINISHED)
{
mTask.cancel(true);
}
super.onDestroy();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
if (pDialog != null)
{
if(pDialog.isShowing())
{
pDialog.dismiss();
}
super.onPause();
}
}
答案 0 :(得分:1)
在finish();
super.onBackPressed();
答案 1 :(得分:0)
只需致电mTask.cancel(true);
即可立即取消AsyncTask
。您需要定期致电isCancelled()
中的doInBackground(...)
- 如果结果为true
,您需要从doInBackground(...)
返回。
在这种情况下,系统不会调用onPostExecute(...)
,而是调用onCancelled()
,您可以致电finish()
终止Activity
。
答案 2 :(得分:0)
使用这个: getActivity = for fragment,for activity use ActivityName.this
Intent intent = new Intent(getActivity(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finishActivity(false);