2011-04-07 66 views
1

我的應用程序有一個服務和一組活動。活動同步

每個活動都包含一個小任務(例如要求用戶插入一個數字,一個文本或表示一個首選項)。

服務啓動活動或一組子活動。

服務開始活動的順序隨日間時間而改變。

但是每次服務都必須等待活動結束(以獲取活動結果)才能開始下一個活動。

我的想法是在兩個活動執行之間的服務中使用wait()調用。

每個活動使用sendBroadcast將結果返回到BroadcastReceiver

BroadcastReceiver執行notify()來釋放服務並將活動結果轉發給服務。

很明顯,這個想法不起作用。問題是:

1)從服務啓動許多活動會導致與每個活動所屬的任務相關的問題。

2)我不知道如何通過從BroadcastReceiver信息到Service(在我第一次宣佈BroadcastReceiverService類中,但是當服務進入wait()進程仍然受阻,BroadcastReceiver永遠不會接收)。

請接受各種建議。也許應用程序體系結構發生了變化?

謝謝

回答

0

流程通常是一個觸發下一個的活動。您應該重新設計架構,以便當您準備完成()activity1時,您已經知道Activity2是什麼,並且從Activity1開始它。也許你的服務應該公開一種你的活動可以調用的方法來獲得應該是下一個活動的決心。可以這樣做,因爲服務和活動在相同的過程中運行,並且可以互相呼叫。