在android中,我需要引用“上下文”或者说将“上下文”传递给几个类。为此,我实现了一个静态类,它保存“上下文”以及通过它访问所有其他类的上下文。
//let's say I have a static class DataHolder
//and my main acitivity i.e. whose context need to be refrenced
public class DataHolder{
public static Context context;
}
public class MainActivity extends Activity{
public void onCreate(Bundle bundle){
DataHolder.context = getApplicationContext();
}
}
那么,这个过程是否可以实现,或者它不是在 Android 应用程序中引用的正确方法。
最佳答案
这里的问题不在于效率,而在于静态存储上下文的固有风险。
上下文在许多事件中都可能发生变化,最有可能的是改变设备方向,因此您不应该总是依赖它。我认为您应该将构造函数中的 Context 传递给您认为会使用它的每个类(或者,更确切地说,重新设计您的代码,以便在它不可用的地方不需要它,尽管这可能有点棘手)。
在最坏的情况下,您应该尝试尽可能频繁地更新它。但是,话又说回来,让它始终可访问有什么意义呢?我认为,为了进行仔细的应用程序设计而冒的风险不值得(抱歉,如果这听起来很粗鲁,我不是故意的)。
关于android - 通过静态类传递上下文是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5946944/