我想在我的活动中添加一些倒数计时器,例如将有一分钟计时器,并且在此期间要求用户记住某些图片。一分钟过后(来自该活动),弹出消息将显示用户必须转到下一个屏幕。有没有人可以帮助我?谢谢
答案 0 :(得分:2)
使用计时器方法如下,
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
//run your code here
}
},0,60*1000);
// here 60 seconds * 1000 milliseconds
// finally don't forget to cancel the timer
timer.cancel();
它使您的代码运行1分钟然后移动到下一个块有其他可用方法检查Android文档
或者您可以使用以下代码
long start = System.currentTimeMillis();
long end = start + 60 * 1000;
while (System.currentTimeMillis() < end) {
// do your stuff here
}
答案 1 :(得分:2)
这是exmaple
像这样创建下面给出的类的对象
final CounterClass timer = new CounterClass(180000,1000); // 1800000 and 1000 are in milli seconds
这里180000等于3分钟
180000/1000
= 180秒,180/60 = 3分钟
和CounterClass(180000,1000);
中的1000表示下一个刻度之间的间隔
并且1分钟使用60000而不是1800000
启动计时器
timer.start();
结束计时器
timer.cancel();
这是计数器类
public class CounterClass extends CountDownTimer {
public CounterClass(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override // when timer is finished
public void onFinish() {
System.out.println("Completed.");
// here start the new activity
}
@Override // on every tick of the timer
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished;
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
System.out.println(hms);
}
}
}
答案 2 :(得分:1)
试试这段代码:
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
new AlertDialog.Builder(this)
.setTitle("Navigate")
.setMessage("Next Activity?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
// start intent to next activity
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
}.start();
答案 3 :(得分:1)
尝试计时器线程并处理线程,
final Handler h = new Handler();
final Runnable animateViewPager = new Runnable()
{
public void run()
{
imageview.setBAckgroundresource(imageView[postion));
}
};
Timer swipeTimer = new Timer();
swipeTimer.schedule(new TimerTask() {
@Override
public void run() {
h.post(animateViewPager);
}
},1000,60*1000);