我尝试开发一个简单的定时器蜂鸣器,它每小时发出一次蜂鸣声。对于我使用服务和处理程序的时间,这里是示例:
void onStart(...){
handler.postDelayed(timerRunnable, ONE_HOUR);
}
private Runnable timerRunnable = new Runnable() {
@Override
public void run() {
...beep
handler.postDelayed(timerRunnable, ONE_HOUR);
}
};
但是 run() 方法将被不确定地触发,我认为这取决于当前设备的使用情况。
我尝试了使用 TimerTask 和“手动”线程实现的相同场景,但结果相同,但不确定。
最佳答案
对于如此长的延迟,使用 AlarmManager
可能会更好。 Handler
最适合在您的应用程序处于前台时处理滴答和超时。
http://developer.android.com/reference/android/app/AlarmManager.html
关于android - 处理程序 postDelayed 按配置延迟更长的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5824912/