2011-08-19 65 views
2

我有一個多活動應用程序,進步用戶輸入IP /主機地址,輸入一些數據(另一個活動),查看視頻幀流(又一個活動)。我通過創建一個單例來在活動之間共享Socket。這被認爲是不適合用於無法序列化的對象的模式嗎?在Android應用程序活動之間使用單例?

我已經看了整個早上通過這些帖子和其他人通過網絡和最好的,我可以想出是沒有真正簡單的方法,但這對我來說似乎很容易。我認爲唯一的其他方法是優點是自定義應用程序對象。

任何與單身人士一起工作的人的洞察力我真的很想聽到任何問題,我可能沒有意識到這可能會讓我以後...感謝!

回答

3

你的方法的缺點是你不能依靠單身人士的數據結構總是保持在內存中。你最好的選擇是堅持SharedPreferences或SQLite數據庫中的信息。

這聽起來像你的單身人士可能是一個Service的好候選人。服務適用於沒有任何UI的長時間運行操作。多個活動可以綁定到服務並與之交互。與單身人士不同,如果/當你的服務被殺死,你會得到生命週期的鉤子來適當地處理它。您也可以將其設置爲在適當時重新啓動。

+0

因此,如果我將套接字移動到服務中,我可以與活動共享套接字嗎,還是必須將數據從服務中編組爲活動?如果我要管理它,那就不好了。表演將受到重創。 – user574771

+0

您可以直接通過IBinder對象共享套接字或數據。請參閱Service.onBind:http://developer.android.com/reference/android/app/Service.html – elevine

相關問題