java - 在 Android 应用程序中设置单个静态 applicationContext 有哪些缺点?

标签 java android

例如,我正在执行以下操作,然后从所有内部类中引用 applicationContext。

public class MobileApplication extends Application {

    public static Context appContext;

    @Override
    public void onCreate() {
        super.onCreate();
        appContext = getApplicationContext();
    }
}

future 类(class),

public class RandomClass {
    public void doSomething() {
       MobileApplication.appContext.toString();
    }
}

我不确定做这样的事情与每次需要时在我的上下文中传递的缺点。

最佳答案

这就是我的想法

  1. 这使得单元测试变得困难。客户端和该应用程序类之间存在紧密耦合。我有时需要使用自定义应用程序类或自定义上下文进行测试。
  2. (请检查我),但上下文不会在轮换时重新创建。无论何时创建该上下文,您都会被困在该上下文中。我认为如果您支持不同的维度或区域设置,它不会发挥很好的作用。
  3. 有可能为空。
  4. 某些新的 UI 小部件需要 getSupportActionBar().getThemedContext() 上下文。这种方法不鼓励这种使用。
  5. The link Naveed 给你的也很好。

总的来说,我发现在需要的地方传递或获取上下文非常容易。

关于java - 在 Android 应用程序中设置单个静态 applicationContext 有哪些缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35784057/

相关文章:

java - UVa在线评判-3n+1问题(错误答案)

java - 在参数化类型上使用绑定(bind)

Android NDK #define 问题

android - 检查android应用程序是否在前台?

android - 强行关闭 Activity 但不会调用 onDestroy

java - android 中给定语言环境的自定义日期格式

Java Mongodb 客户端

java - Hibernate 与数据库不同步

java - 当我的类已经扩展了一个类时,如何实现 TimerTask?

java - 在 Android Java 编程中,如何从其祖先查看子 Activity?