Android服务不断运行和轮询

时间:2013-12-03 18:41:04

标签: android service alarmmanager polling

我要实现一个简单的应用程序用于测试目的,在后台运行一个始终运行的服务,每隔几秒轮询一次服务器。 我知道GCM,但在我的情况下,我无法使用,因为我在没有Internet连接的Intranet中。

所以我需要一些解释,哪些是最佳实践:如何实现服务每隔几秒做一次事情? AlarmManager?处理程序?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是一种重复做法的方法:

private ScheduledExecutorService exec;

private void startExec() {
    shutDownExec();
    exec = Executors.newSingleThreadScheduledExecutor();
    exec.scheduleWithFixedDelay(new Runnable() {

        @Override
        public void run() {
            // starts immediately and is run once every minute
        }
    }, 0, 1, TimeUnit.MINUTES);
}

private void shutDownExec() {
    if (exec != null && !exec.isTerminated()) {
        exec.shutdown();
    }
}

当然可以包含在服务中,只要服务存在就可以运行。