我正在編寫一個應用程序,它將從遠程服務器上的xml文件中讀取數據,然後將其放入手機/選項卡上的SQLite數據庫中。我知道它正在成功地從xml讀取數據並將其放入SQLite .db文件中。但是,問題是我的應用程序的其餘部分的行爲就好像SQLite .db文件是空的。它將不會訪問數據,直到我退出應用程序並再次運行它。我究竟做錯了什麼?編寫和讀取SQLite中的SQLite數據庫時遇到困難
以下是我得到的數據:
// Get Instrument data from XML
while (eventType != XmlResourceParser.END_DOCUMENT) {
if (eventType == XmlResourceParser.START_TAG) {
// Get the name of the tag (eg data or datum)
String strName = instruments.getName();
if (strName.equals("datum")) {
bFoundInstruments = true;
String datumDate = instruments.getAttributeValue(null, "date");
Float datumWtioil = Float.parseFloat(instruments.getAttributeValue(null, "wtioil"));
Float datumHh = Float.parseFloat(instruments.getAttributeValue(null, "hh"));
Float datumPlat = Float.parseFloat(instruments.getAttributeValue(null, "plat"));
publishProgress(datumDate, Float.toString(datumWtioil), Float.toString(datumHh), Float.toString(datumPlat));
// add data to SQLite database
datasource.createInstrument(datumDate, Float.toString(datumWtioil), Float.toString(datumHh), Float.toString(datumPlat));
}
}
現在,這裏就是我把它放到SQLite的.db文件使用createInstrument()方法:
public Instrument createInstrument(String instrumentDate, String instrumentWtioil, String instrumentHh,
String instrumentPlat) {
ContentValues values = new ContentValues();
//Log.d("instrumentalityWtioil",instrumentWtioil);
values.put(ForecastSQLiteHelper.COLUMN_DATE, instrumentDate);
values.put(ForecastSQLiteHelper.COLUMN_DATA1, instrumentWtioil);
values.put(ForecastSQLiteHelper.COLUMN_DATA2, instrumentHh);
values.put(ForecastSQLiteHelper.COLUMN_DATA3, instrumentPlat);
long insertId = database.insert(ForecastSQLiteHelper.TABLE_DATA, null,
values);
Cursor cursor = database.query(ForecastSQLiteHelper.TABLE_DATA,
allColumns, ForecastSQLiteHelper.COLUMN_ID + " = " + insertId, null,
null, null, null);
cursor.moveToFirst();
Instrument newInstrument = cursorToInstrument(cursor);
cursor.close();
return newInstrument;
}
爲什麼沒有數據立即可用於應用程序?爲什麼我必須關閉應用程序並在可見之前重新啓動它?
任何意見將不勝感激。
從哪裏調用'createInstrument',你的意思是「它是可見的」(你的展示視圖是什麼)? – staaar