android.view.WindowManager异常$ BadTokenException:无法添加窗口

时间:2017-06-19 20:24:48

标签: java android android-activity android-alertdialog

我偶尔会收到此错误,但不确定如何修复它。我读到上下文可能会被破坏,但没有关于如何解决它的真实答案,特别是对于我的情况。 错误发生在我Utility.showDialog onPostExecute的{​​{1}}下方。处理这个问题的正确方法是什么?

DataTask.java

BaseLoadOperation

Utility.java

public class DataTask extends BaseLoadOperation {

    public DataTask(Context context) {
        super(context);
    }
        @Override
            protected void onPostExecute(Object result) {
                super.onPostExecute(result);
                Utility.showDialog(this.context.getString(R.string.connectionerror), "OK", this.context);
            }

异常android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌android.os.BinderProxy@49fff91无效;你的活动在运行吗?

public static void showDialog(String message, String buttonText, Context context, final IDialogCallback callback) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage(message)
               .setCancelable(true)
               .setPositiveButton(buttonText, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       if(callback != null)
                       {
                           callback.buttonPress();
                       }
                   }
               });
        AlertDialog alert = builder.show();
        TextView messageText = (TextView)alert.findViewById(android.R.id.message);
        messageText.setGravity(Gravity.CENTER);

        alert.show();
    }

0 个答案:

没有答案