2 exit door eXit_door 于 2013.08.09 15:38 提问

在固定时间后关闭对话框

应用中包含一个对话框。

我想要在x秒后自动关闭这个对话框。前提是如果这段时间用户对应用没有任何操作。

类似弹出的音量拖动条(两秒钟用户没有操作就自动关闭)。

不知道怎么实现?请高手指点,谢谢。

2个回答

Kill_it
Kill_it   2013.08.09 16:47
已采纳
// a dialog
final Dialog dialog = new Dialog(getApplicationContext());

// the code inside run() will be executed if .postDelayed() reaches its delay time
final Runnable runnable = new Runnable() {

    @Override
    public void run() {
        dialog.dismiss(); // hide dialog
    }
};

Button interaction = (Button) findViewById(R.id.bottom);

final Handler h = new Handler();

        // pressing the button is an "interaction" for example
interaction.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {


        h.removeCallbacks(runnable); // cancel the running action (the hiding process)
        h.postDelayed(runnable, 5000); // start a new hiding process that will trigger after 5 seconds
    }
});

追踪用户动作

@Override
public void onUserInteraction(){
    h.removeCallbacks(runnable); // cancel the running action (the hiding process)
    h.postDelayed(runnable, 5000); // start a new hiding process that will trigger after 5 seconds
}
Jave_
Jave_   2013.08.09 16:29

用个TimerTask,秒数++,增加到2秒就关闭,同时检测touch事件,一有触摸就恢复秒数为0,两边协调一下

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!