Android中Application單例模式的正確寫法
阿新 • • 發佈:2019-02-16
在Android開發中,經常要在別的類去拿Application的單例,我看過很多單例模式的寫法如下:
public class MyApplication extends Application { private static MyApplication myApplication = null; @Override public void onCreate() { super.onCreate(); } public static MyApplication getApplication(){ if (myApplication == null){ myApplication = new MyApplication(); } return myApplication; } }
上面這種寫法是錯誤的。因為不能直接去new Application,一旦你New 了,就是個全新的物件而不是當前的Application物件了。那麼接下來你很多需要使用當前Application的地方就會出問題。
其實吧,Application類比較特殊,它的onCreate()是一定會走的。所以,可以這麼寫:
public class MyApplication extends Application { private static MyApplication myApplication = null; public static MyApplication getApplication() { return myApplication; } @Override public void onCreate() { super.onCreate(); myApplication = this; } }
特此記錄一下。
===============================
如果你覺得幫到了你,請給作者打賞一口飯吃: