当我的应用程序启动时,我正在调用 Asyn Task 函数。在后台进程中,它访问了 3 个 API,并且它们的解析功能继续进行,大约需要 10 分钟的时间。
在这种情况下,如果用户单击 android 默认的后退按钮,那么用于取消的异步任务。为避免这种情况,我尝试如下阻止后退按钮操作。
class First_Time_Sync extends AsyncTask<Void, Void, Void>
{
ProgressDialog dialog1 = new ProgressDialog(Progressss.this);
protected void onPreExecute()
{
backMode = true;
dialog1.setMessage("Welcome \nThank you for waiting.");
dialog1.setIndeterminate(true);
dialog1.show();
}
protected Void doInBackground(Void... arg0)
{
.................
return null;
}
protected void onPostExecute(Void unused)
{
backMode = false;
dialog1.dismiss();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (backMode)
{
return true;
}
else
{
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}
现在,当调用异步任务函数并且用户单击返回按钮时,进度条会被取消。但是后台进程继续进行,并且后退按钮被阻止,直到后台进程完成。
我希望即使按下后退按钮也能显示进度条,以免它消失。
这该怎么做......