我正在开发一个应用程序,它在特定的时间段内向特定号码发送消息.问题是它会在那段时间后继续发送该消息.如何在特定时间后停止计时器以停止发送该消息?
ice*_*911 70
CountDownTimer waitTimer;
waitTimer = new CountDownTimer(60000, 300) {
public void onTick(long millisUntilFinished) {
//called every 300 milliseconds, which could be used to
//send messages or some other action
}
public void onFinish() {
//After 60000 milliseconds (60 sec) finish current
//if you would like to execute something when time finishes
}
}.start();
Run Code Online (Sandbox Code Playgroud)
提前停止计时器:
if(waitTimer != null) {
waitTimer.cancel();
waitTimer = null;
}
Run Code Online (Sandbox Code Playgroud)
cmc*_*nce 21
和..我们必须为GC调用"waitTimer.purge()".如果你不再使用Timer,"purge()"!! "purge()"从任务队列中删除所有已取消的任务.
if(waitTimer != null) {
waitTimer.cancel();
waitTimer.purge();
waitTimer = null;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我们可以安排计时器来完成工作.结束时我们设置的邮件将不会发送.
这是代码.
Timer timer=new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//here you can write the code for send the message
}
}, 10, 60000);
Run Code Online (Sandbox Code Playgroud)
在这里我们调用的方法是,
public void scheduleAtFixedRate(TimerTask任务,长延迟,长时间段)
在这里,
任务:要安排的任务
延迟:首次执行前的时间量(以毫秒为单位).
period:后续执行之间的时间量(以毫秒为单位).
有关更多信息,请参阅: Android Developer
您可以通过致电来停止计时器,
timer.cancel();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107079 次 |
| 最近记录: |