我有一个活动。我想要的只是如果用户没有触摸屏,在TIMEOUT之后,此活动将自动完成()。有人有什么想法吗?
答案 0 :(得分:3)
CountDownTimer countDownTimer = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
//TODO: Do something every second
}
public void onFinish() {
finish();
//YourActivity.finish(); outside the actvitiy
}
}.start();
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
countDownTimer.cancel();
countDownTimer.start();
}
return super.onTouchEvent(event);
}
所以基本上你开始一个countDown计时器,而不是等待它完成。完成后,请在活动上致电完成。 如果在用户触摸屏幕之间,则取消定时器并再次启动它。
别忘了接受答案:)
答案 1 :(得分:0)
了解如何在Android中等待/休眠,例如:
wait for 3 seconds or user click
How to "wait" a Thread in Android
当等待/睡眠结束时,只需调用finish()方法。
答案 2 :(得分:0)
在您的活动中尝试此操作:
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
finish();
//YourActivity.finish(); outside the actvitiy
}
}.start();
http://developer.android.com/reference/android/os/CountDownTimer.html
答案 3 :(得分:-1)
使用它:
int time =0;
然后为您的根布局添加onTouchListener并更新时间值,如下所示:
time = 0;
并使用处理程序计数如下:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
time++;
if(time>=10000){
finish();
}
}
}, 1000);
很明显,我将完成时间设定为10秒。