我正在设计奖金可运行,以便对于每个问题,如果用户可以提前完成问题,则每个问题的剩余时间都会有奖励分数。
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?
非常感谢!
答案 0 :(得分:0)
我很喜欢你的问题,并尝试回答并在此基础上构建...所以我写了一些代码来管理这些计时器在一个单独的线程中,通过一个简单的通知回调机制。
有一个QuestionTimer类,它有一个简单的接口,以线程安全的方式处理定时问题,还有一个活动(MainActivity)来演示如何使用它。 QuestionTimer通过回调为其听众提供剩余时间,因此您可以轻松地将其作为奖励添加或为下一个问题添加更多时间。
您可以在此处找到代码:https://gist.github.com/anonymous/182c13a4961515781be6
希望这有帮助!