Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何锁定后退按钮_Android - Fatal编程技术网

Android 如何锁定后退按钮

Android 如何锁定后退按钮,android,Android,我想在处理数据时锁定“后退”按钮。 我使用AsyncTask处理数据,如下所示: class Process extends AsyncTask<String, String, String> { @Override protected void onPreExecute() { super.onPreExecute(); progDailog = new ProgressDialog(ShareFolderActivity.this.getParent()); progDailog

我想在处理数据时锁定“后退”按钮。 我使用AsyncTask处理数据,如下所示:

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;