java - 如何停止每次从处理程序显示的相同警报对话框?
问题描述
我有一个AlertDialog
on 方法,该方法在Handler
. Handler
每次运行时也AlertDialog
一次又一次地加载,如果对话框仍然显示我不想再次加载它,我想显示一次对话框。为此,我有以下代码但无法正常工作。
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
handler.postDelayed(this, 1000);
checkCountry();
}
};
handler.postDelayed(runnable, 1000);
public void checkCountry() {
alertDialogueBuilder = new AlertDialog.Builder(MainActivity.this);
alertDialogueBuilder.setTitle("VPN Detected!");
alertDialogueBuilder.setMessage("Please Turn Of VPN To Continue!");
alertDialogueBuilder.setIcon(R.drawable.errorstop);
alertDialogueBuilder.setCancelable(false);
alertDialogueBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
AlertDialog alertDialog = alertDialogueBuilder.create();
if(alertDialog.isShowing()){
//Do Something
}else{
alertDialog.show();
}
}
解决方案
要仅显示 1 次对话框,请仅调用要从中显示此对话框的 checkCountry() 方法。并且,请删除处理程序代码。这里不需要使用 Handler。仅使用 checkCountry() 方法来显示对话框。
推荐阅读
- arrays - 从维数为 3 的字符串数据类型数组中提取元音元素
- botframework - 使用主动消息机器人框架创建群聊
- javascript - Javascript数组相等控制和改变值
- angular - 当按钮以角度禁用时,谷歌浏览器中不显示任何工具提示
- javascript - 返回预期的输出但仍然错误?
- php - 如何将http url重定向到https url?
- javascript - 父 div 未使用 parent().show() 方法显示
- javascript - 未捕获的类型错误:$(...).makeRed 不是函数
- testing - 查询测试的试剂/打嗝标记
- java - 为 cmake 执行外部库(Android Studio)