Android 在onCreate中绑定应用程序上下文安全吗?

Android 在onCreate中绑定应用程序上下文安全吗?,android,android-context,Android,Android Context,假设我们有一个自定义的应用程序扩展应用程序 我知道只要有可能,就应该使用getApplicationContext()方法,但只有在提供此方法的范围内,它才适用。有时候你需要在它之外访问它,这就是为什么我开始怀疑 下面是示例代码 public class App extends Application { private static App instance = null; public static App getInstance() { retur

假设我们有一个自定义的
应用程序扩展应用程序

我知道只要有可能,就应该使用
getApplicationContext()
方法,但只有在提供此方法的范围内,它才适用。有时候你需要在它之外访问它,这就是为什么我开始怀疑

下面是示例代码

public class App extends Application
{
    private static App instance = null;

    public static App getInstance()
    {
        return instance;
    }

    public static Context getContext()
    {
        return instance;
    }

    @Override
    public void onCreate()
    {
        instance = this;
        super.onCreate();
    }
}

App.getContext()
是否返回与
getApplicationContext()
在适当范围内返回的上下文相同的上下文?像这样绑定应用程序上下文安全吗?

静态s的生存期实际上与您的
应用程序
相同。从不会出现内存泄漏的意义上讲,它是安全的,并且它将始终引用正确的
应用程序

getApplicationContext()
返回
应用程序
对象,该对象也是一个
上下文

然而,像这样的
静态
数据是您应该尽量避免的设计气味。它给代码添加了不必要的耦合,使得组件更难单独测试。相反,考虑将<代码>上下文< /代码>作为需要的参数。


要想获得一篇关于特定类型的
上下文
应用程序
适合做什么的好文章,请阅读

+,这是一篇很好且全面的链接文章。