2012-04-13 63 views
0

我的應用程序中有兩個後臺服務,由AlarmManager定期安排。每個服務的時間間隔不同。我想每兩分鐘運行一次服務,每15分鐘運行一次服務。Android Tell服務無法啓動,直到其他服務完成

如何防止它們同時運行?

如果一個服務在另一服務被調用時另一服務正在運行,我希望它在第一個服務完成後立即運行。

+1

你不想從第一個開始第二個服務的任何理由? – mfrankli 2012-04-13 18:14:09

+0

Shedule只有第一個,從第一個開始第二個,就在它將停止做它的工作之前... – Selvin 2012-04-13 18:15:00

+0

@mfrankli我認爲原因是太多的咖啡和死亡線.... – Selvin 2012-04-13 18:15:59

回答

4

我想每兩分鐘運行一次服務,每15分鐘運行一次服務。

如何防止它們同時運行?

您將它們合併爲一個服務,每N分鐘運行一次,每隔M次執行一次不太頻繁的工作。

+0

我將如何追蹤第n次被叫?我會在全局應用程序類,共享首選項或數據庫變量中使用變量嗎?我選擇哪一個真的很重要?它只是一個數字模式15. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-04-13 19:22:49

+1

@zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz:「我會在全局應用程序類,共享首選項或數據庫變量中使用變量嗎?」 - 可能是持久的,特別是如果這些是「IntentServices」,因爲你的過程可能會在事件之間消失。我傾向於一個'SharedPreference'。 – CommonsWare 2012-04-13 19:26:50

0

只安排一個您想先啓動的服務,並在此服務完成時啓動第一個服務的onDestroy中的另一個服務。

+0

一項服務計劃每2分鐘運行一次,另一項計劃每15分鐘運行一次。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-04-13 18:29:35