2012-03-27 47 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