2012-04-15 53 views
1

在我的應用程序中,我有一個服務正在查詢服務器的數據。 該服務每x分鐘查詢一次服務器,可以配置該服務器。 當我運行應用程序,連接到USB電纜時,當USB未連接時,ScheduledExecutorService停止

,
timer.schedule(new MyTimerTask(), delayInSec, TimeUnit.SECONDS); 

完美地工作。但是,當設備沒有連接到USB(電腦)時,它停止。

當設備重新連接到USB時它會恢復工作。

如何解決?

謝謝, Eyal。

回答

1

如何解決?

步驟#1:刪除您現有的ScheduledExecutorService實施。

步驟#2:使用AlarmManager來設置您的預定工作,由WakefulIntentService執行工作,因此設備將醒來完成工作,保持清醒狀態足夠長以完成工作,然後返回到完成睡眠(並讓您的服務在兩個作業之間關閉,因此它不會不停地佔用用戶的RAM)。