例如被實例化,我有一個類當靜態變量Android中
public class EagerInitializedSingleton {
private static final EagerInitializedSingleton instance = new EagerInitializedSingleton();
public static EagerInitializedSingleton getInstance(){
return instance;
}
}
而我的申請有2個活性A.java和B.java(從A I可以去B)。
在B活性我
import EagerInitializedSingleton.java;
public class B{
onCreate(...){
EagerInitializedSingleton.getInstance()...
}
}
我的問題是,當instantiated
被instantiated`
- 當啓動應用程序(A活動開始之前)
- 當進口
EagerInitializedSingleton.java
- 或者當EagerInitializedSingleton。 getInstance()
如果可能,我可以檢查什麼時候通過寫日誌或其他東西來實例化? 任何幫助將不勝感激。
UPDATE 我跟着在這裏創建EagerInitializedSingleton
http://www.journaldev.com/1377/java-singleton-design-pattern-best-practices-examples
而且他們還有如果你的單例類沒有使用了大量的資源說
,這是使用 方法。但在大多數的場景中,辛格爾頓類 的資源,如文件系統,數據庫連接等 創建,我們應該避免的實例化,直到除非客戶端調用 getInstance方法
像一些回答說instance
是當我打電話給EagerInitializedSingleton.getInstance()...
時,實例化,那麼誰是正確的?
供您參考http://stackoverflow.com/questions/8704423/when-static-variables-are-initialized-in-java –
創建一個私人的,沒有參數'EagerInitializedSingleton'構造函數並調用你的'Log.d'有 – pskink
@pskink請檢查我的更新,如果你不介意請給我一個解釋 –