2016-03-18 41 views
0

我在我的代碼中發現我經常需要訪問應用程序上下文。使應用程序上下文全局可用 - 好/壞主意?

相反周圍路過語境無處不在的,我已經通過了以下應用類擴展其全球可用:

public class App extends Application { 
    static private Context _appContext; 
    static public Context getContext(){ return _appContext;} 

    public void onCreate() { 
     super.onCreate(); 
     _appContext=this; 
} 

,只是通過訪問: App.getContext();

疑問:這是好還是壞設計理念?爲什麼?有推薦的做法嗎?

+0

如果你的「全局」上下文處理少量的視圖和變量,你可以......但不是最佳實踐。如果「全局上下文」有很多變量,視圖存儲在RAM中,這是一個壞主意。 –

+1

「上下文取決於它來自哪裏oringinary」:https://possiblemobile.com/2013/06/context/ –

+1

我瘦重構代碼,所以它是**不**與*上下文緊密耦合*是一種更好的方法去。 – davidshen84

回答

0

你可以在任何地方使用getApplicationContext()(App)getApplication(),爲什麼你這樣做?

+0

好問題。因爲你無法到處使用getApplicationContext,例如在自定義類中。您只能在從上下文派生的類中使用它,例如「活動」和「應用程序」。 –

相關問題