我偶尔会收到此错误,但不确定如何修复它。我读到上下文可能会被破坏,但没有关于如何解决它的真实答案,特别是对于我的情况。
错误发生在我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();
}