0
A
回答
2
LocalBroadcastManager
不包括釋放方法。這是否意味着它會自動進行GC編輯?
不,它不會。但它也不一定。
從您在應用程序中的任何位置用拳頭調用該方法的時間點開始,直到您的應用程序進程終止爲止。
A static
方法名爲getInstance
,它返回您所在類的實例,意味着在大多數情況下您正在處理singleton。
單身人士是在整個應用程序中僅存在一次的對象,它們的行爲與全局變量相同(通常被認爲是bad forseveral reasons)。
如果您的代碼中註冊接收廣播的位置使用的廣播管理器不同於發送廣播的廣播管理器,則整個廣播機制將會崩潰。該代碼確保每個人都使用相同的單身人士。
LocalBroadcastManager
另一方面不會泄漏您的活動上下文,如果你把它作爲參數。它將調用context.getApplicationContext()
來獲取應用程序上下文,該應用程序本身是一個可以永久保持引用的單例。
的代碼創建單的方式,以及如何應對單身上下文中進一步詳細這篇文章中描述:Context, What Context?(注:在一個線程安全的方式 - 在那篇文章中不幸丟失)
相關問題
- 1. 我需要釋放CFError嗎?
- 2. 我們需要釋放常量嗎?
- 3. 我需要釋放局部變量嗎?
- 4. 你需要釋放NSData嗎?
- 5. 它需要釋放AVCaptureVideoPreviewLayer嗎?
- 6. 我需要從ptsname()中釋放結果嗎?
- 7. 我需要釋放我修改並返回的JNI數組嗎?
- 8. 需要釋放QList內容嗎?
- 9. 需要使用JNI釋放jboolean嗎?
- 10. does XMLDOMNodePtr :: get_text()需要明確釋放嗎?
- 11. 我需要釋放複製的NSObject嗎?Objective-c
- 12. 我需要釋放由newHV創建的HV *嗎?
- 13. 我需要在Qt中釋放slot參數的資源嗎?
- 14. GL_TEXTUREs是否需要釋放/釋放?
- 15. NSArray不需要的釋放
- 16. 我需要釋放由_Type :: get_FullName
- 17. 我是否需要釋放UITouch對象?
- 18. 我是否需要釋放此對象?
- 19. 我需要釋放手勢識別器嗎?
- 20. 在德爾福2009年,我需要釋放變體數組嗎?
- 21. 我需要在.NET中釋放私人界面字段嗎?
- 22. 我需要在GTK中釋放彈出式菜單嗎?
- 23. 我需要從GetNamedSecurityInfo API中釋放哪些返回的參數?
- 24. 我是否需要釋放從gtk_builder_get_object返回的對象?
- 25. 需要釋放互斥鎖?
- 26. allocWithZone對象需要釋放
- 27. CGPoint需要解釋嗎?
- 28. 我是否需要從此示例中釋放臨時對象?
- 29. 我必須保留/釋放從NSDictionary中取得的值嗎?
- 30. 需要從CSS獲取類
這是非常有幫助。謝謝。一般來說,我們如何知道返回的obj是否是單身人士。這是否意味着所有的ClassName.getInstance都應該返回一個單數?例如,(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); –
'getSystemService'返回的也是一個。一個沒有公共構造函數的類,通過其他方法獲得類型的對象通常是這樣設計的:a)不必知道有多少b)不必關心它的生命週期。 'getInstance'是一種慣例。 'newInstance'會每次給你一個新的。之間的任何東西(例如有5個連接對象的連接池)可能也是'getInstance'(並且你不應該永遠保留對這些連接的引用) – zapl
因此,如果我在LocalBroadcastManager上調用getInstance,它不會很昂貴,實際上每次都會創建一個新的,但是隻需重新使用舊的 - 對吧?它不是工廠(?) – JohnyTex