【问题标题】:Android, Singleton, contextAndroid,单例,上下文
【发布时间】:2015-07-29 07:59:02
【问题描述】:

我陷入了一个问题。我正在创建一个需要单例的助手类。该类有一个全局上下文变量。我无法做到这一点,因为上下文只能从 onCreate 获得,并且这个 Singleton 实例是在很久以前创建的,因为它是静态的。

谁能帮我解决这个问题。 Singleton 实例最终需要上下文。

public class Helper { 

  private static Helper sHelper = new Helper() ; 
  private Helper () {} ; 
  public static Helper getInstance() { 
       return sHelper;
  } 

  public boolean doSomething() {
     mContext.getContentResolver; 
     return isDone;
 }
}

【问题讨论】:

  • 类助手{ 私有静态助手 sHelper =new Helper() ;私人助手 () {} ; public static Helper getInstance() { return sHelper;} ; public boolean doSomething() {mContext.getContentResolver;返回完成;}
  • 很遗憾,因为我是从手机发送的,所以无法缩进。但是,在 doSomething() 方法中,我需要上下文。

标签: android design-patterns singleton


【解决方案1】:

您可以将上下文设置为您的 ApplicationContext。 您可以创建一个 Application 类并实现以下内容:

yourSingletonClass.getInstance().setContext(this);

这个调用应该在你的应用程序类的 onCreate 方法下。 有关更多信息,请尝试此文档: Android - Application class

【讨论】:

    【解决方案2】:

    您只需将以下上下文传递给您的助手类。

    getApplicationContext()
    

    【讨论】:

      【解决方案3】:

      你需要通过你的构造助手类传递上下文:

      getApplicationContext()
      

      【讨论】:

        猜你喜欢
        • 2018-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多