Android 如何设置24/7服务的倒计时

Android 如何设置24/7服务的倒计时,android,service,countdowntimer,Android,Service,Countdowntimer,我最近刚刚学习并开发了一个小部件。我知道小部件至少每30-60分钟自动更新一次。现在我被要求将自动更新时间缩短到5分钟 因此,我想到了创建另一个服务线程,该线程每5分钟持续运行一次倒计时,并刷新应用程序以检查是否存在任何可能的错误。这些错误实际上是ping测试结果。如果服务器关闭,我将执行Toast消息,通知用户该服务器已关闭 那么,我该怎么做呢?还是有更好的建议。请开导我 我认为最好将runnable与postDelayed一起使用,如下所示: private Handler handler

我最近刚刚学习并开发了一个小部件。我知道小部件至少每30-60分钟自动更新一次。现在我被要求将自动更新时间缩短到5分钟

因此,我想到了创建另一个
服务线程
,该线程每5分钟持续运行一次倒计时,并刷新应用程序以检查是否存在任何可能的错误。这些错误实际上是ping测试结果。如果服务器关闭,我将执行
Toast消息
,通知用户该服务器已关闭


那么,我该怎么做呢?还是有更好的建议。请开导我

我认为最好将runnablepostDelayed一起使用,如下所示:

private Handler handler = new Handler();
private Runnable runnable = new CustomRunnable();

private class CustomRunnable implements Runnable {
        public void run() {
            // your logic
          handler.postDelayed(runnable, REFRESH_TIME);
        }
    }
private static final int REPEAT_TIME_IN_SECONDS = 60; //repeat every 60 seconds

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis(),
            REPEAT_TIME_IN_SECONDS * 1000, pendingIntent);
刷新时间-刷新的常数,单位为毫秒。只运行一次handler.postDelayed(可运行,刷新时间)您想去哪里。

这可以帮助您:

好友使用
TimerTask
在特定时间间隔后呼叫

Timer timer = new Timer();
timer.schedule(new UpdateTimeTask(),1, TimeInterval);

或者您也可以使用
AlamManager

如下设置
AlarmManager

private Handler handler = new Handler();
private Runnable runnable = new CustomRunnable();

private class CustomRunnable implements Runnable {
        public void run() {
            // your logic
          handler.postDelayed(runnable, REFRESH_TIME);
        }
    }
private static final int REPEAT_TIME_IN_SECONDS = 60; //repeat every 60 seconds

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis(),
            REPEAT_TIME_IN_SECONDS * 1000, pendingIntent);
如果您想在手机关机时唤醒手机,请将
AlarmManager.RTC
更改为
AlarmManager.RTC_WAKEUP
。更多关于AlarmManager的信息


这两个参数还意味着您的报警时间将是
System.currentTimeMilis()
,即UTC时间。

节能模式、电池寿命等如何?(OTOH,我不知道你的设备是什么。)第二种情况使用Alarm Manager(),但我认为不太方便。哎呀,我在问题中没有提到。我一直在考虑闹钟的想法,因为他们有一个倒计时计时器。谢谢报警管理器的建议。我也会调查的。谢谢你,欢迎你,伙计。。我添加了更多的代码,这样您就可以有更多的选择,即
AlaramManager
Gosh,太棒了。再次感谢!