Android 计时器时间表
Android Timer Schedule
以下是我在项目中用来安排任务的代码片段
mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
//Do Something
}
}, interval, interval);
这很好用。我在提到的时间间隔后得到事件。但是,如果日期设置小于当前设置,则无法发送任何事件。
有人知道为什么会发生这种行为吗?
使用此代码..这会对你有所帮助..
Timer t;
seconds = 10;
public void startTimer() {
t = new Timer();
//Set the schedule function and rate
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (seconds == 0) {
t.cancel();
seconds = 10;
// DO SOMETHING HERE AFTER 10 SECONDS
Toast.makeText(this,"Time up",Toast.LENGTH_SHORT).show();
}
seconds -= 1;
}
});
}
}, 0, 1000);
}
Timer
更改系统时钟时失败,因为 it's based on System.currentTimeMillis()
不是单调的。
Timer
不是 Android class。它是存在于 Android API 中的 Java class 以支持现有的 non-Android 库。在新的 Android 代码中使用 Timer
几乎总是一个坏主意。使用 Handler
表示在您应用的活动或服务的生命周期内发生的定时事件。 Handler
is based on SystemClock.uptimeMillis()
, which is monotonic. Use an Alarm 对于即使您的应用不是 运行 也应该发生的定时事件。
以下是我在项目中用来安排任务的代码片段
mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
//Do Something
}
}, interval, interval);
这很好用。我在提到的时间间隔后得到事件。但是,如果日期设置小于当前设置,则无法发送任何事件。
有人知道为什么会发生这种行为吗?
使用此代码..这会对你有所帮助..
Timer t;
seconds = 10;
public void startTimer() {
t = new Timer();
//Set the schedule function and rate
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (seconds == 0) {
t.cancel();
seconds = 10;
// DO SOMETHING HERE AFTER 10 SECONDS
Toast.makeText(this,"Time up",Toast.LENGTH_SHORT).show();
}
seconds -= 1;
}
});
}
}, 0, 1000);
}
Timer
更改系统时钟时失败,因为 it's based on System.currentTimeMillis()
不是单调的。
Timer
不是 Android class。它是存在于 Android API 中的 Java class 以支持现有的 non-Android 库。在新的 Android 代码中使用 Timer
几乎总是一个坏主意。使用 Handler
表示在您应用的活动或服务的生命周期内发生的定时事件。 Handler
is based on SystemClock.uptimeMillis()
, which is monotonic. Use an Alarm 对于即使您的应用不是 运行 也应该发生的定时事件。