2012-10-29 189 views
2

在我的Android項目的生命週期,我已經持有流地址(音樂)的列表中選擇一個類管理Android應用程序

我應該保持這一類,所以我不會有補充該名單?

可能有很多不同的屏幕(活動),我會將它們推入屏幕或從屏幕拉回。

這些和,列表將會丟失畫面切換(活動破壞)之間......

這是否邏輯需要服務來保存列表?

+0

什麼不能像目前實施的那樣工作? –

+0

如果我把它放到我的主要活動中,我會放鬆列表。 (數組對象)我應該將該對象放入服務中嗎? – frankish

回答

1

不,你不需要這個。

通常情況下,如果您有一個需要在活動生命週期中生存的長時間運行的類,則將其放入綁定的服務中將會有效。它需要你通過IPC傳輸數據。在這種情況下,它應該沒有關係。由於您處理的基本上是String陣列,因此您可以將它放入您即將開始的ActivityIntent對象中,或者放入Bundle的對象中,該對象將進入Intent對象。

在創建活動時,只需使用Intent#getExtras()方法打開Bundle並重新構建您的列表。與具有Service的IPC相比,它不會花費太多時間,而且應該更容易維護。

編輯:

一個可以嘗試的東西是重寫Application對象。您必須在Manifest中指定新的入口點,但是如果您從Application類構建Singleton並在該處保存引用,則只要您的應用程序正在運行,它就應該保持活動狀態。當你離開時它會被摧毀。

+0

使用靜態單例類來容納字符串數組將工作?或者服務或新的活動創建一個新的? (靜態對象的範圍有所不同?) – frankish

+0

這種情況不太可能發生,但如果Android平板電腦決定銷燬服務以釋放內存,那麼您的運氣不佳。最好刪除依賴關係而不是創建它們。 – DeeV

+0

等一下。剛剛有一個想法,你可以嘗試。查看編輯。 – DeeV

2

您可以將列表存儲在靜態單例中,也可以存儲在擴展Application的類中。這又可以通過getApplication()的活動類訪問。

正確使用時,靜態singleton將以與應用程序類相同的方式工作,除了singleton可以從任何地方訪問以及Application類僅通過Context。

Here有關應用程序和單例之間有什麼區別的相關問題。

+0

謝謝你,這也是有價值的信息! – frankish

相關問題