我正在关注Android示例的'Searchable Dictionary'并使用一些数据(1200条记录)预先填充我的FTS3数据库。我希望在我的活动的初始加载时显示3个“默认”记录,但我需要等到所有记录都插入到FTS3中。当我查看日志时,我看到了
02-17 10:26:44.188:D / WorldClockWidgetActivity(1188):默认城市数量:0
02-17 10:27:11.668:D / CitiesDatabase(1188):DONE loading words。
@Override
public void onCreate(SQLiteDatabase db) {
mDatabase = db;
mDatabase.execSQL(FTS_TABLE_CREATE);
loadDictionary();
}
/**
* Starts a thread to load the database table with words
*/
private void loadDictionary() {
new Thread(new Runnable() {
public void run() {
try {
loadWords();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}).start();
}
enter code here
我尝试将上述内容更改为ASyncTask但问题是无法从正在加载数据的“CitiesOpenHelper extends SQLiteOpenHelper”访问我的主活动列表适配器。
我的问题是如何判断我的数据是否已加载,以便我可以加载默认值并显示给用户?
非常感谢
答案 0 :(得分:3)
步骤1:将loadWords()
移至onCreate()
并删除该帖子。
第2步:在getReadableDatabase()
getWriteableDatabase()
的{{1}}中设置AsyncTask
或ListAdapter
来自您的活动或片段启动的onPostExecute()
。