处理程序 postDelayed 按照配置延迟更长的时间

Mar*_*ark 1 android timer delay handler

我尝试开发一个简单的定时蜂鸣器,每小时发出一次。对于我使用服务和处理程序的时间,这里是示例:

    void onStart(...){
        handler.postDelayed(timerRunnable, ONE_HOUR);
    }

    private Runnable timerRunnable = new Runnable() {

    @Override
        public void run() {
               ...beep
               handler.postDelayed(timerRunnable, ONE_HOUR);
        }
    };
Run Code Online (Sandbox Code Playgroud)

但是run()方法将被不确定地触发,我认为它取决于当前的设备使用情况。

我已经尝试使用 TimerTask 和“手动”线程实现相同的场景,但具有相同的不确定性结果。

Lef*_*nia 5

AlarmManager这么长时间的延迟中使用 可能会更好。Handler当您的应用程序处于前台时,最适合滴答和超时。

http://developer.android.com/reference/android/app/AlarmManager.html