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()
返回应用程序
对象,该对象也是一个上下文
然而,像这样的静态
数据是您应该尽量避免的设计气味。它给代码添加了不必要的耦合,使得组件更难单独测试。相反,考虑将<代码>上下文< /代码>作为需要的参数。
要想获得一篇关于特定类型的上下文
如应用程序
适合做什么的好文章,请阅读+,这是一篇很好且全面的链接文章。