Android 如何锁定后退按钮
我想在处理数据时锁定“后退”按钮。 我使用AsyncTask处理数据,如下所示:Android 如何锁定后退按钮,android,Android,我想在处理数据时锁定“后退”按钮。 我使用AsyncTask处理数据,如下所示: class Process extends AsyncTask<String, String, String> { @Override protected void onPreExecute() { super.onPreExecute(); progDailog = new ProgressDialog(ShareFolderActivity.this.getParent()); progDailog
class Process extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progDailog = new ProgressDialog(ShareFolderActivity.this.getParent());
progDailog.setMessage("Loading...");
progDailog.setIndeterminate(false);
progDailog.setMax(100);
progDailog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progDailog.setCancelable(true);
progDailog.show();
lock = true;
}
@Override
protected String doInBackground(String... aurl) {
//process
return null;
}
@Override
protected void onPostExecute(String unused) {
super.onPostExecute(unused);
PostLoad();
progDailog.dismiss();
lock = false;
}
}
当按下at doInBackground back(返回)按钮时,返回操作不执行,但progDailog(程序日志)将关闭。
如何修改以避免它被取消?您可以调用
progDailog.setCancelable(false)
要锁定后退按钮您需要设置progDailog.setCancelable(false)代码>对于禁用硬件后退键按钮的对话框我确信您不想中断异步任务后台进程。因此,根据您的代码,我可以建议对代码进行一些修改,这样即使您按back键,您的对话框也会保留在那里
您只需通过以下方式将对话框设置为不可取消:
progDailog.setCancelable(false);
@覆盖
公共布尔onKeyDown(int-keyCode,KeyEvent事件){
if(Integer.valueOf(android.os.Build.VERSION.SDK)<7
//而是使用android.os.Build.VERSION.SDK\u INT
}
progDailog.setCancelable(false);
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (Integer.valueOf(android.os.Build.VERSION.SDK) < 7
//Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
// This may not work on older versions of platform where it doesn't exist.
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
return;