0

我正在開發一個具有5個選項卡的主要活動的應用程序。換句話說,該主要活動包含一個可以用5個不同片段替換的框架佈局。此外,應用程序可以從該主要活動導航到其他活動,但用戶必須返回到該主要活動才能繼續瀏覽應用程序。另一方面,我有一個從應用程序的onCreate方法啓動的啓動服務,該服務從我們的API獲取一些數據,其中一些數據用於下一個片段/活動: - 5個片段中的2個在主要活動中被取代。 - 可能從該主要活動開始的其他一些活動。何時綁定服務

所以我想知道綁定到該服務的最佳方式(以獲得該數據)。我認爲有3個選項:

1)需要服務數據的每個片段/活動都在其onStart方法上綁定它,並在其onStop上解除綁定服務。所以每個片段/活動將完全獨立於其他片段/活動。

2)需要來自服務和主要活動(而不是片段)的數據的活動綁定到服務。因此,在瀏覽標籤頁時,服務不會被綁定/解除綁定,但即使用戶位於不需要的片段中,該服務也會被綁定。

3)在綁定到服務的應用程序的onCreate方法上創建一個單例,因此需要來自服務某些數據的片段/活動將使用該單例而不是綁定/取消綁定到服務。

我目前已經開發了第一個選項,但我一直在想哪個選項是最好的。你怎麼看?你可以幫我一把嗎?

在此先感謝!

回答

0

我在這些情況下使用應用程序作用域單例。碎片/活動可以隨時訪問服務,而無需擔心停止和啓動任何內容。我有一個例子here