Android - 静态上下文

时间:2016-03-05 15:57:15

标签: java android memory-leaks

我需要在我的utils类中引用Context。

首先,我正在扩展Application类并初始化我的util类:

public class MyApplication extends Application {

  @Override
  public void onCreate() {
      super.onCreate();
      Utils.init(getApplicationContext());
  }
}

和utils类看起来像:

public class Utils{

    private static Context sContext;

    private Utils() {
    }

    public static void init(Context context) {
        sContext = context;
    }
}

是否有任何以这种方法泄漏的可能方法?

我只能看到一种情况:当应用程序进入后台时 - 可以重新创建上下文,因此即使它将在内存中持续存在,也可以重新初始化Utils类。

请提出任何建议。

1 个答案:

答案 0 :(得分:1)

你应该按照以下方式解决:

 public class YourClass extends Application {

        private static Context context;

        public void onCreate()
        {
            super.onCreate();
            YourClass.context = getApplicationContext();
        }

        public static Context getAppContext() {
            return YourClass.context;
        }
    }

使用方法:

YourClass.getAppContext();