我正在尝试使用android中的managedquery()在使用内容提供程序时返回游标。我之所以使用它,是因为有人提到,当活动暂停或恢复时,这将自动处理光标的关闭。
但是这仅适用于Activity类。但我在android中使用asynctask有多个后台线程。我在多个线程中执行相同的列表提取。所以它的重复代码。这是因为我无法从其他线程dobackground()调用一个线程类的函数。有没有一种简单安全的方法来避免这种重复的代码。好心劝告。感谢您的帮助和时间。
答案 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
}