Android:扩展android.app.Application

时间:2010-07-07 01:46:30

标签: android

我有一个DBHandler类,将在几个活动中用于执行一些crud操作。创建了一个MyApp类(扩展了Application)来保存DBHandler的一个实例。

我的DBHandler类需要一个Context来创建SQLiteOpenHelper来填充db等。

这就是问题出现的地方:在我的MyApp构造函数中,我想实例化我的DBHandler,所以我写了这个:

public MyApp() {
    super();
    dbh = DBHandler(<WHAT DO I PASS HERE>);
}

我尝试了getApplicationContext(),getBaseContext(),'this'......此时似乎没有任何完全实例化的上下文。当SQLiteOpenHelper尝试ctx.getResources()时,我得到一个NPE。

解决方法:创建DBHandler并将其设置在我的主类的onCreate中。 - &GT; UGLY(称我为美学家)

问题:当Android创建MyApp时,有没有办法实现?

谢谢!

1 个答案:

答案 0 :(得分:1)

在MyApp.onCreate()中创建DBHandler是执行所需操作的正确方法。

@Override
public void onCreate() {
    super.onCreate();
    dbh = new DBHandler(this);
}