【发布时间】:2015-07-15 23:22:38
【问题描述】:
我有这个 AsyncTask,每次执行“doInBackground”时睡眠 0.1 秒,在此之前我使用 CountDownTimer 来控制我的时间。
我的问题是:我想实现一个可以暂停而不调用.cancel() 以及何时开始创建另一个计时器的计时器。
有没有办法实现这个是android?我没有找到如何以不同的方式做到这一点。你能举个例子吗?
我在哪里找到了取消计时器的示例:
编辑
回答Kevin Krumwiede:这个项目是一种游戏,我必须在确定的时间内击中块,所以我想实现一种方法,当玩家使用某种特殊力量时停止计时器(点击指定的按钮)。
EDIT2
Answering Kushal:我不知道你有没有编译过这段代码,但是我不能使用 task1 变量。代码如下:
public void doIt(){
final ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
final Runnable task =
new Runnable() {
@Override
public void run() {
timerAsyncTask.execute();
if(true) {
exec.shutdown(); // shutdown this execution
//exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(task, 0, 100, TimeUnit.MILLISECONDS);
}
}
};
exec.scheduleAtFixedRate(task, 0, 100, TimeUnit.MILLISECONDS);
}
这里exec = Executors.newSingleThreadScheduledExecutor(); 显示一个错误:
错误:(33, 21) 错误: 无法为最终变量 exec 赋值
我认为这很好,一旦 exec 是最终变量。
这里exec.scheduleAtFixedRate(task, 0, 100, TimeUnit.MILLISECONDS);我又遇到了一个错误:
Error:(34, 46) 错误:变量任务可能没有被初始化
你能解释一下,我该如何使用这段代码?我对android很陌生。 谢谢。
【问题讨论】:
-
几乎没有充分的理由在 Android 中使用
Timer。告诉我们更多关于您的用例,也许我们可以提出更合适的解决方案。 -
我已经编辑了问题。
标签: android timer countdowntimer timertask onpause