如何在Android中有效使用托管查询?

时间:2011-07-28 22:24:45

标签: android android-asynctask

我正在尝试使用android中的managedquery()在使用内容提供程序时返回游标。我之所以使用它,是因为有人提到,当活动暂停或恢复时,这将自动处理光标的关闭。

但是这仅适用于Activity类。但我在android中使用asynctask有多个后台线程。我在多个线程中执行相同的列表提取。所以它的重复代码。这是因为我无法从其他线程dobackground()调用一个线程类的函数。有没有一种简单安全的方法来避免这种重复的代码。好心劝告。感谢您的帮助和时间。

1 个答案:

答案 0 :(得分:0)

你不能有一个抽象的asynctask类来实现这个db查询代码(如果这是你在后台线程中所做的一切,那么把它放在doInBackground()中,否则把它放在私有方法中),然后你的具体子类扩展了这个抽象类调用super.doInBackground还是调用那个私有方法?

E.G。

private abstract AbstractQueryTask extends AsyncTask<Long, Void, Long> {

protected Cursor querycode{
//put your query code here
}

}

public ConcreteQueryTask extends AbstractQueryTask {

//put the doInBackground and onPostExecute implementations here

}