【问题标题】:Application Context in Non Activity Class?非活动类中的应用程序上下文?
【发布时间】:2014-12-12 06:59:08
【问题描述】:

有很多关于这个主题的信息,但没有一个对我有帮助。 我在应用程序的应用程序类中有几个全局变量/字段:

public class App extends Application {

private static App instance

public string PUBNUB_SUB = BuildConfig.PUBNUB_SUB_KEY; 
public string PUBNUB_PUB = BuildConfig.PUBNUB_PUB_KEY;


public void onCreate() {
instance = this;

}

public static App getInstance(){
   return instance;
}

}

在活动/片段中,我成功地访问了这些变量,如下所示:

class ActivityA extend Activity {

App baseApp;
Pubnub pubnub;


public void onCreate(Bundle savedInstanceState){

     baseApp = new(App)getApplicationContext();
     Pubnub(baseApp.PUBNUB_SUB, baseApp.PUBNUB_PUB)

}

现在如何在非 Activity/非 Fragment 类中访问 getApplicationContext()?

 public class Events {


 App baseApp;
 Context mContext;
 app = new(LoQooApp)mContext.getApplication(); ???


 public Events(Context context) {
 app = new(LoQooApp)mContext.getApplication(); ???
 }

上面的都不行,应该去哪里

app = new(LoQooApp) getApplication();去吗?

【问题讨论】:

  • 什么?你总是可以在构造函数中传递上下文,如果你在片段中 getActivity() 会给你上下文

标签: java android class android-context


【解决方案1】:

看起来PUBNUB_SUBPUBNUB_PUB 是常量,因此您可以将它们声明为public static final,然后使用静态引用访问:App.PUBNUB_SUBApp.PUBNUB_PUB

【讨论】:

    猜你喜欢
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多