由於我對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. ASP.NET中的單身人士
- 2. Python中的單身人士
- 3. 在PHP中使用單身人士
- 4. 由Singleton包裝的單身人士或非單身人士
- 5. 使用XML中的單身人士對象android
- 6. 單身人士的後果
- 7. 何時使用單身人士?
- 8. 單身人士破壞者
- 9. 單身人士目標C
- 10. 單身人士和常量
- 11. 單身人士在di.dart
- 12. 繼承單身人士
- 13. AFNetworking和單身人士
- 14. 提升單身人士
- 15. 單身人士和範圍
- 16. ThreadLocal與單身人士
- 17. 單身人士和DbSimple
- 18. servlet是單身人士嗎?
- 19. 單身人士和例外
- 20. MIDlet作爲單身人士
- 21. 單身人士和線程
- 22. 一個通用的單身人士
- 23. Cocoa插件中的單身人士
- 24. 使MongoClient實例成爲單身人士
- 25. Yii2創建簡單的單身人士
- 26. 私人會員單身人士班
- 27. 如果父對象不是單身人士,那麼孩子是單身人士?
- 28. 通用單身人士<T>
- 29. 單身人士 - 是否有用
- 30. 用gson創建guice單身人士
你用它在你需要它的地方... – alfasin