如何在AsyncTask中使用MainActivity的SQLiteDatabase实例?

时间:2013-05-31 00:33:31

标签: android sqlite android-asynctask

我的MainActivity中有一个“SQLiteDatabase db”。我将其初始化,然后在AsyncTask方法中调用updateDatabaseTask onCreate(),如下所示:

db = databaseHelper.getWritableDatabase();
...
updateDatabaseTask  = new UpdateDatabaseTask();
updateDatabaseTask.execute();

我在updateDatabaseTask的{​​{1}}方法中使用“db”,如下所示:

doInBackground()

但是我收到了这个错误:

Cursor c = db.query(...);

我们不应该在开始时初始化数据库实例,并且能够在不同的任务,函数等中使用它吗?

1 个答案:

答案 0 :(得分:0)

正如Neaetmul在上述评论中指出的那样,我从databaseHelper.close()的{​​{1}}移除了onPause(),问题就解决了。但是,我还没想到为什么这行导致了这样的运行时错误,因为app正在运行,而我正在使用它...