1. 程式人生 > >Android中Application單例模式的正確寫法

Android中Application單例模式的正確寫法

在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;
    }
}

特此記錄一下。

===============================
如果你覺得幫到了你,請給作者打賞一口飯吃: