Android删除runnable回调

时间:2015-07-04 15:00:03

标签: android runnable countdown

我正在设计奖金可运行,以便对于每个问题,如果用户可以提前完成问题,则每个问题的剩余时间都会有奖励分数。

代码:

PendingIntent alarmIntent = PendingIntent.getBroadcast(this.getContext(), 0, intent, 0);
  //After after 30 seconds
 alarmManager2.setRepeating(AlarmManager.RTC_WAKEUP, twopm.getTimeInMillis(), 30*1000 , alarmIntent);

问题:

如果用户使奖励时间段到期,即倒计时达到0,则当用户开始另一个问题时,奖励倒计时可以平稳地进行并且最后被移除。但是,如果用户可以提前完成该问题,则对于下一个问题,倒计时会跳过一些数字并快速降至0.

我想问一下如何修改代码,以便在开始新问题之前正确删除runnable?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我很喜欢你的问题,并尝试回答并在此基础上构建...所以我写了一些代码来管理这些计时器在一个单独的线程中,通过一个简单的通知回调机制。

有一个QuestionTimer类,它有一个简单的接口,以线程安全的方式处理定时问题,还有一个活动(MainActivity)来演示如何使用它。 QuestionTimer通过回调为其听众提供剩余时间,因此您可以轻松地将其作为奖励添加或为下一个问题添加更多时间。

您可以在此处找到代码:https://gist.github.com/anonymous/182c13a4961515781be6

希望这有帮助!