知道为什么我的代码块出现非法状态异常?
mDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (isAdded()) {
Intent viewIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(viewIntent);
dialog.dismiss();
}
}
});
是因为我在开始新活动后解雇了对话框吗?
答案 0 :(得分:1)
startActivity(viewIntent);
dialog.dismiss();
replace with below
dialog.dismiss();
startActivity(viewIntent);
是因为我在开始新活动后解雇了对话框吗?
答案:是
Well Activity和Dialog是不同的.Activity有一个Dialog所以 没有活动对话框就没有任何立场。(只有活动一样 控制UI而不是对话框。)当你启动所有活动的新活动时 state是保存的活动堆栈,但堆栈不能对话状态 它不是部分活动UI。(Dialog只能存在活动 上下文)。如果任何活动显示的任何对话框在完成或gettting保存到活动堆栈对话框之前必须从UI中删除。
答案 1 :(得分:0)
只需替换
dialog.dismiss();
与
mDialog.dismiss();