2017-04-11 40 views
2

使用靜態方法獲取Android中的應用程序後繼程序實例是否正確?我已經看到了這種方法在幾個開源項目:VLCShuttle從靜態方法獲取應用程序實例

public class MyApplication extends Application { 

    private static MyApplication sApplication; 

    public static MyApplication getInstance() { 
     return sApplication; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 

     sApplication = MyApplication.this; 
    } 

} 
+0

我也在我的應用程序中這樣做,它工作得很好。基本上,只要應用程序正在運行,您就可以使用該實例。 –

+0

請定義目的,然後我們可以引導更多的主題。有一種使用依賴注入(DI)的替代方法,例如Dagger在這種情況下很有用。 – mpals

+0

我打算用這個來獲取資源,顯示吐司。我現在絕對不想使用Dagger。 –

回答

3

是。這種方法是正確的。這是你遵循的單例模式。由於變量是正確的方式,因爲它是你想要維護的單一狀態。

而且它是安全的,只要你的應用程序永遠不會在多個進程中運行。每個流程都有嚴格的一對一比例的申請。

我也在我的所有應用程序中使用它。

+1

很好的答案,很久以前我看到了你的最後一個信號;) – rekire

相關問題