我有一个DBHandler类,该类将在几个活动中用于执行某些操作。创建了一个MyApp类(扩展了Application)来保存DBHandler的一个实例。
我的DBHandler类需要一个上下文来创建SQLiteOpenHelper来填充数据库,等等。
问题就从这里开始:在MyApp构造函数中,我想实例化我的DBHandler,所以我这样写:
public MyApp() {
super();
dbh = DBHandler(<WHAT DO I PASS HERE>);
}
我尝试了getApplicationContext(),getBaseContext(),“ this”……这时似乎还没有一个完全实例化的上下文。当SQLiteOpenHelper尝试ctx.getResources()时,我得到了NPE。
解决方法:创建DBHandler并将其设置在主类的onCreate中。 ->丑陋(叫我一个美学家)
问题:Android创建MyApp时有办法吗?
谢谢!
最佳答案
在MyApp.onCreate()中创建DBHandler是执行所需操作的正确方法。
@Override
public void onCreate() {
super.onCreate();
dbh = new DBHandler(this);
}
关于android - Android:扩展android.app.Application,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3191361/