Android在运行时从sqlite读取数据
我在联机时将所有数据存储在sqlite数据库中,然后在脱机时每次都尝试读取存储的数据库Android在运行时从sqlite读取数据,android,sqlite,nullpointerexception,android-sqlite,Android,Sqlite,Nullpointerexception,Android Sqlite,我在联机时将所有数据存储在sqlite数据库中,然后在脱机时每次都尝试读取存储的数据库 if(isOnline(getActivity())) { db = new DataBaseHandler(getActivity()); getDataInAsyncTask(); storeData(db); //db.close(); } else
if(isOnline(getActivity()))
{
db = new DataBaseHandler(getActivity());
getDataInAsyncTask();
storeData(db);
//db.close();
}
else
{
Toast.makeText(getActivity(), "No internet",
Toast.LENGTH_LONG).show();
try {
db.openDataBase();
} catch (SQLException sqle) {
throw sqle;
}
getDataInDataBase(db);
flag=0;
}
在else条件下,即脱机模式下,我使用db.openDataBase()在联机模式下打开/加载先前实现的数据库db
public void openDataBase() throws SQLException{
//Open the database
String myPath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);}
db.openDataBase提供nullpointerException
我哪里做错了?加载/打开已构建的数据库db的方法正确吗 您从未初始化过db对象 排队 db=新的DataBaseHandler(getActivity()) 在if/else语句之前或try/catch语句内部
/*
* intitlize object globaly
**/
db = new DataBaseHandler(getActivity());
if(isOnline(getActivity()))
{
/**
* look at these you are
* intialize object when is online
*/
//db = new DataBaseHandler(getActivity());
getDataInAsyncTask();
storeData(db);
//db.close();
}
else
{
Toast.makeText(getActivity(), "No internet",
Toast.LENGTH_LONG).show();
try {
db.openDataBase();
} catch (SQLException sqle) {
throw sqle;
}
getDataInDataBase(db);
flag=0;
}