创建对应用程序上下文的引用并在任何地方使用它是一个好习惯吗?

时间:2010-06-07 23:14:15

标签: android

我必须在我的代码的许多地方使用上下文,例如数据库操作,首选项操作等。我不想为每个方法传递上下文。

在主Activity上创建对应用程序上下文的引用并在数据库操作的任何地方使用它是一个好习惯吗?因此,我在方法参数中不需要很多上下文,并且代码可以避免因使用Activity Context而导致位置内存泄漏。

public class MainActivity extends Activity  {

    public static Context s_appContext;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        s_appContext = this.getApplicationContext();

1 个答案:

答案 0 :(得分:1)

对我而言,它闻起来像一个黑客,虽然我同意它可能是一个痛苦必须通过所有这些环境。我用这种方法看到的至少一个问题是在尝试对需要上下文的任何代码进行单元测试时 - 现在一切都取决于你的主要活动的onCreate方法已被调用。