Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 两个AlertDialog、onCancel和“尝试完成输入事件,但输入事件接收器已被释放。”_Android - Fatal编程技术网

Android 两个AlertDialog、onCancel和“尝试完成输入事件,但输入事件接收器已被释放。”

Android 两个AlertDialog、onCancel和“尝试完成输入事件,但输入事件接收器已被释放。”,android,Android,我有这段代码用于显示与帐户选择器的对话框。单击另一个AlertDialog DoLoginDialog中的“验证”按钮可访问此对话框 它不会对应用程序造成任何问题,但我想了解发生了什么。我搜索过,但只能找到更复杂的情况。这是非常基本的,所以我希望能找到能帮助我理解这里发生的事情的人。我也有同样的问题,我找到了一个解释 由于事件处理工作流,这似乎是一种正常行为。 要避免此警告,您需要将对话框设置为即使触摸外部也不可取消,并在对话框中添加“取消”按钮以取消该对话框 希望这有帮助 accountPic

我有这段代码用于显示与帐户选择器的对话框。单击另一个AlertDialog DoLoginDialog中的“验证”按钮可访问此对话框


它不会对应用程序造成任何问题,但我想了解发生了什么。我搜索过,但只能找到更复杂的情况。这是非常基本的,所以我希望能找到能帮助我理解这里发生的事情的人。

我也有同样的问题,我找到了一个解释

由于事件处理工作流,这似乎是一种正常行为。 要避免此警告,您需要将对话框设置为即使触摸外部也不可取消,并在对话框中添加“取消”按钮以取消该对话框

希望这有帮助

accountPicker = new AlertDialog.Builder(this)
.setTitle(getString(R.string.common_select_an_account))
.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, name),
            new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
               if (which < availableAccounts.length) {
                  final Account chosenAccount = availableAccounts[which];
                  authenticator.verifyAccount(chosenAccount, MainActivity.this);
                } else {                     
                   authenticator.addNewAccount(MainActivity.this);
                }
              }}).create();

accountPicker.setCancelable(true);
accountPicker.setCanceledOnTouchOutside(true);

accountPicker.setOnCancelListener(new DialogInterface.OnCancelListener() {
     @Override
      public void onCancel(DialogInterface dialog) {
          if(DEBUG) Log.d(TAG, "OnCancel - AccountPickerDialog");
          showDoLoginDialog();
      }});
accountPicker.show();
Attempted to finish an input event but the input event receiver 
has already been disposed.