我怎麼能寫單身人士通過幾個進程工作?可能嗎? 例如,我的代碼可以在Android中使用Remote Service。我怎麼能爲此寫單身人士?單身人士通過幾個進程?
回答
public enum MySingleton {
SOLE;
//all class stuff
}
這是一個簡單的書寫,懶惰和線程安全的單例。您可以直接使用MySingleton.SOLE
或將它放到其他變量中,但它們全部只會引用僅一個實例。您可以根據需要在多個進程中使用它,它可以全部處理它們。 (在Android的過程線程真的)
這不是我的想法,它是從Effective Java, Second Edition
至於使用全局數據(把那要求進入正題,請),你可以從各處達到MySingleton.SOLE
。靜態常量是全局的。當然,名字是你的。
當然,任何事情都有其解決方法。你可以通過類加載來欺騙這個單例。
如果你真的想有幾個不同的任務,不是線程一個實例,那麼最簡單的辦法將單建爲Hybernate或其他ORM對象。所有進程將在同一個表中看到具有相同數據的同一行。但我認爲這對你的任務來說是過度的。
我需要一個類來製作可以在多個進程中使用的單例。 但是,當我打電話給我的單身人士的getInstance()方法,我得到我的單身人士的新實例 – user1074896 2012-02-07 12:45:37
請仔細閱讀我的答案。它不是階級,它是枚舉!絕對不可能再製造SOLE的第二個例子。 – Gangnus 2012-02-07 12:46:24
我需要一個類爲Singleton而不是枚舉。如何在枚舉中存儲一些全局數據?提前致謝。 – user1074896 2012-02-07 12:49:38
您創建的遠程服務將始終爲單身。您需要有一個接口在使用Android接口定義語言的進程之間進行通信。
這個線程是老了,但目前接受的答案是錯誤的,誤導一些人,所以在這裏我們去。
服務在Android中可以使用相同的工藝爲您的應用程序,或者不同的進程完全運行。
如果這是你自己的應用程序供其內部使用定義的服務,它可能是在同一個進程中運行。只是不要設置任何process
attributes on the Manifest。在這種情況下,您的服務將在主線程或某些後臺線程上運行其任務,並將與您的其他應用程序共享相同的單例實例。
如果這是一個真正的遠程服務在一個單獨的進程中運行,或一個單獨的應用程序,那麼你正在努力實現的多,困難得多。每個進程都有自己的單例實例,它們彼此之間沒有任何關係。這是非常有意義的,一旦你意識到不同的進程甚至可能不會運行相同版本的代碼。
如果你真的想跨進程有一個公共對象(提示:你幾乎肯定沒有),你需要爲它的數據創建一個共享內存空間,並實現一些同步手段。我敢肯定,有科目的完整大學講座。
- 1. 單身人士和線程
- 2. 一個通用的單身人士
- 3. 訪問C#的單身人士,而不通過它進入類
- 4. 單身人士用這個
- 5. 由Singleton包裝的單身人士或非單身人士
- 6. C#:單身人士使用單身人士
- 7. 爲什麼java.lang.Runtime是單身人士?單身人士的要求?
- 8. 我的單身人士模板真的是單身人士嗎?
- 9. 通用單身人士<T>
- 10. 更新用戶與單身人士的進程進度
- 11. 線程安全枚舉單身人士
- 12. 單身人士破壞者
- 13. 繼承單身人士
- 14. NSMutableDictionary單身人士問題
- 15. RequireJS中的單身人士
- 16. 單身人士濫用?
- 17. 單身人士和範圍
- 18. RavenDB的單身人士DocumentStore
- 19. 使用QtConcurrent單身人士
- 20. 單身人士 - 未定義?
- 21. Embeded RavenDb的單身人士
- 22. 假FakeItEasy單身人士
- 23. ThreadLocal與單身人士
- 24. 提升單身人士
- 25. ASP.NET中的單身人士
- 26. MIDlet作爲單身人士
- 27. servlet是單身人士嗎?
- 28. Python中的單身人士
- 29. AFNetworking和單身人士
- 30. 單身人士和DbSimple
沒有正確地得到您的問題。 – Lucifer 2012-02-07 12:38:29
是否可以在Android中爲幾個進程編寫Singleton類? – user1074896 2012-02-07 12:39:52
http://groups.google.com/group/android-developers/browse_thread/thread/abe59add03ae4ce3 但我需要只有一個singleton.Is這可能嗎? – user1074896 2012-02-07 12:41:42