Android,单例,上下文

Android, Singleton, context

我遇到了一个问题。我正在创建一个需要是 Singleton 的助手 class。 class 有一个全局上下文变量。我无法执行此操作,因为上下文仅可从 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;
 }
}

您可以将上下文设置为您的 ApplicationContext。 您可以创建一个应用程序 class 并实现如下内容:

yourSingletonClass.getInstance().setContext(this);

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

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

getApplicationContext()

您需要通过构造助手传递上下文 class:

getApplicationContext()