3

我正在关注 Android 示例的“可搜索字典”,并使用一些数据(1200 条记录)预先填充了我的 FTS3 数据库。我想在我的活动初始加载时显示 3 条“默认”记录,但我需要等到所有记录都插入 FTS3。当我查看日志时,我看到

02-17 10:26:44.188: D/WorldClockWidgetActivity(1188): #默认城市: 0

02-17 10:27:11.668: D/CitiesDatabase(1188): 完成加载单词。

    @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 扩展 SQLiteOpenHelper”访问我的主要活动的列表适配器。

我的问题是如何判断我的数据是否已加载,以便加载默认值并显示给用户?

非常感谢

4

1 回答 1

3

步骤#1:loadWords()进入onCreate()并摆脱线程。

第 2 步:从您的活动或片段开始调用getReadableDatabase()orgetWriteableDatabase()和您的查询,设置您的.AsyncTaskListAdapteronPostExecute()

于 2013-02-17T18:45:35.623 回答