我正在创建一个Android应用程序,我在其中管理一些剩余部分。我希望当某个事件发生时,对话框显示出来,这对我来说不是问题。但我希望如果用户在两分钟内没有做出任何响应,对话框会自动关闭。我该如何实现呢?
答案 0 :(得分:5)
static AlertDialog alert = ....;
alert.show();
Runnable dismissRunner = new Runnable() {
public void run() {
if( alert != null )
alert.dismiss();
};
new Handler().postDelayed( dismissRunner, 120000 );
不要忘记常规对话框中的alert = null
解除代码(即onClick按钮)。
答案 1 :(得分:2)
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.game_message);
game_message = builder.create();
game_message.show();
final Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
game_message.dismiss(); // when the task active then close the dialog
t.cancel(); // also just top the timer thread, otherwise, you may receive a crash report
}
}, 5000);
答案 2 :(得分:1)
你应该可以使用Timer:
来做到这一点http://developer.android.com/reference/java/util/Timer.html
stackoverflow链接描述了如何使用它来运行重新执行任务,但您也可以使用它来运行一次性任务。
答案 3 :(得分:1)
final Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
alert.dismiss();
t.cancel();
}
}, 2000);