2012-03-27 79 views
0

我有一个Android服务,每分钟访问一次数据库。有没有办法在这个服务中,在每12小时执行一次的计时器内启动另一个进程?现在,我有下面的代码我的服务范围内,但这些代码以同样的速度作为服务执行:Android服务中的计时器?

UPDATE_INTERVAL = (1000*60)*60*12; 
timer.scheduleAtFixedRate(new TimerTask(){ 
        @Override 

        public void run(){ 

         if(!parseDailyData(AppStatus.getConsumer(), AppStatus.getProvider(), client, dayData)) 
         { 
          Log.v(TAG, "no parse day set"); 
         } 
         getTopPeople(); 
        } 

       }, 0, UPDATE_INTERVAL); 

回答

1

我访问约每分钟一次的数据库中的Android服务。

希望这只会在您的应用程序处于前台时运行,或者因为用户明确要求此服务运行。

有没有办法在这个服务中,在每12小时执行一次的计时器中启动另一个进程?

使用AlarmManager表示每12小时发生一次。你甚至可以考虑将它用于每1分钟运行一次的东西,所以你不一定会占用内存。

+0

我需要创建一个单独的服务来启动警报过程吗?或者,我可以拨打每分钟运行一次的服务12小时重复警报吗?或者,最好在服务中创建两个警报:一个每分钟执行一次,另一个每12小时执行一次? – user836200 2012-03-27 16:28:05

+0

@ user836200:该服务执行定期工作。使用AlarmManager设置您的闹钟时间表通常发生在其他地方。 – CommonsWare 2012-03-27 16:40:40