java - Android - 静态上下文

标签 java android memory-leaks

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

首先我要扩展应用程序类并初始化我的实用程序类:

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 类会持久存在内存中,也可能会重新初始化它。

有任何建议,请。

最佳答案

你应该按如下方式解决:

 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();

关于java - Android - 静态上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35816270/

相关文章:

java - 为存储在 Google Appengine 数据存储区中的实体创建 URL

java - Jfreechart - 如何添加带有破折号的图例项?

java - 由于 org.springframework.core.ResolvableTypeProvider,上下文初始化失败

java - 获取和释放 java 监视器锁(同步块(synchronized block)、可重入锁等)是否需要上下文切换到内核空间?

java - 在 AndroidManifest 中重命名包不起作用

android - Recyclerview AddOnScrollListener

android - Bundle.getString(String key) 上的默认值

c - 如何正确管理 GTK3 中的内存?

c++ - ofstream 泄漏内存

javascript - 使用 Highcharts + AngularJS 的内存泄漏