由於我對Android非常陌生,因此我對java中的單例類非常感興趣。我完全理解單身人士的概念,但我真的很困惑在Android中使用它,我還沒有使用它。
你能指導或解釋一個真實的例子嗎?在哪種情況下我應該使用單例類?Android中使用的單身人士?
回答
這取決於您的項目以及您如何實現您的MVC或MVP結構。您可以在代碼中使用任何設計模式,並在需要的地方使用您的類。這是一個單例類的一個示例:
public class Singleton {
private static Singleton mInstance = null;
private String mString;
private Singleton(){
mString = "Hi!";
}
public static Singleton getInstance(){
if(mInstance == null)
{
mInstance = new Singleton();
}
return mInstance;
}
public String getString(){
return this.mString;
}
public void setString(String value){
mString = value;
}
這個類創建一次,當你需要這個類的一個對象只使用對象被創建之前
Singleton singleTon = getInstance(); singleTon.setName(「FirstVal」); System.out.println(singleTon.getName()); singleTon.setName(「SecondVal」); System.out.println(singleTon.getName()); 所以這是我可以如何更新值爲字符串,但只有一個實例創建整個應用程序生命週期。那是對的嗎?糾正我,如果我錯了 – John
是的。 Singleton類創建一次,並且你更新之前創建的對象 –
我認爲你在你的例子中忘記了一些東西。你應該讓mInstance變量爲volatile,並且在方法getInstance中,你應該將該代碼包裝在syncronize(Singleton.class)塊中。您可能想要詳細瞭解線程和併發性。 –
這完全取決於你的需要和要求,以爲我們用它幾乎每個項目都讓我們的生活更輕鬆。
- Android中我使用DatabaseHelper的單身讓我沒有要格外小心約開然後再次關閉數據庫,並與數據庫打交道鎖和數據庫的併發訪問等
檢查: - http://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html
2.然後我用它來管理sharedPreferences存儲sharedpreferences這將是一個更容易維護的代碼,我不我得走了一圈又一圈,看看檢查鍵值和所有。 選中此項: - https://medium.com/@ali.muzaffar/android-sharedpreferences-singleton-to-make-life-easier-f1d802b6cd8e。
3.然後,當我想要訪問應用程序中任何地方的對象並且經常需要時使用它。
希望你有一點想法在哪裏使用。
很酷,這是我的預期。 – John
很高興幫助。請接受答案。 –
在排球API最有用當你想從排球一個物體在你的應用程序
例如:對辛格爾頓這個例子說明你在你的應用程序得到一個請求隊列
public class VolleySingleton {
private static VolleySingleton singleton;
private RequestQueue requestQueue;
private VolleySingleton(){
requestQueue= Volley.newRequestQueue(MyApplication.getAppContext());
}
public static VolleySingleton getInstance(){
if(singleton==null)
singleton=new VolleySingleton();
return singleton;
}
public void setRequestQueue(RequestQueue requestQueue)
{
this.requestQueue = requestQueue;
}
public RequestQueue getRequestQueue() {
return requestQueue;
}
}
看看這個要點:https://gist.github.com/Akayh/5566992
它的工作原理,但它很快完成:
MyActivity:設置單首次+初始化mStri在私有構造NG屬性(「你好」),並顯示該值(「你好」)
設置新的價值mString:「單身」
啓動activityB並顯示mString值。 「單身人士」出現...
很好的例子,非常感謝你 – John
- 1. C#:單身人士使用單身人士
- 2. 使用QtConcurrent單身人士
- 3. RequireJS中的單身人士
- 4. ASP.NET中的單身人士
- 5. Python中的單身人士
- 6. iOS中的單身人士
- 7. 在PHP中使用單身人士
- 8. 我的單身人士模板真的是單身人士嗎?
- 9. 由Singleton包裝的單身人士或非單身人士
- 10. 爲什麼java.lang.Runtime是單身人士?單身人士的要求?
- 11. 單身人士濫用?
- 12. 單身人士用這個
- 13. 使用XML中的單身人士對象android
- 14. RavenDB的單身人士DocumentStore
- 15. Embeded RavenDb的單身人士
- 16. 單身人士的後果
- 17. 試圖爲單身人士使用ReactCSSTransitionGroup
- 18. 使用單身人士分配NSNumber值
- 19. 何時使用單身人士?
- 20. 使用單身人士共享變量
- 21. Android:綁定服務或單身人士
- 22. Android單身人士和內存問題
- 23. 身份驗證中使用的單身人士
- 24. Android:活動和服務之間使用的單身人士
- 25. 單身人士破壞者
- 26. 繼承單身人士
- 27. NSMutableDictionary單身人士問題
- 28. 單身人士和範圍
- 29. 單身人士 - 未定義?
- 30. 假FakeItEasy單身人士
你用它在你需要它的地方... – alfasin