原来的DatabaseOption和DatabaseManager总是报空指针异常,是因为上下文为Application时无法通过SQLiteOpenHelper的方法getWritableDatabase获取可读写的数据库。
在menifest文件中初始化后可以解决该问题。即在application标签下添加name属性,并在name属性对应的包名下新建一个类继承Application。
<application
android:name=".base.RailSetApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
public class RailSetApplication extends Application {
private static Application mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
public static Context getInstance()
{
if(null == mInstance){
mInstance = new RailSetApplication();
}
Log.e("RailSetApplication", "is null "+(null == mInstance));
// return mInstance.getApplicationContext();
return mInstance;
}
}