Как эффективно использовать управляемый запрос в Android? - PullRequest
0 голосов
/ 29 июля 2011

Я пытался использовать managedquery () в Android, чтобы вернуть курсор при работе с поставщиком контента. Я использовал это, потому что было упомянуто, что это будет обрабатывать закрытие курсора самостоятельно, когда действие приостановлено или возобновлено.

Но, однако, это работает только для класса Activity. Но у меня есть несколько фоновых потоков, использующих asynctask в Android. Я делаю одну и ту же выборку из нескольких веток. Так что это повторяющийся код. Это потому, что я не могу вызвать функцию одного класса потока из другого потока dobackground (). Есть ли простой и безопасный способ избежать этого повторяющегося кода. Добрый совет. Спасибо за вашу помощь и время.

1 Ответ

0 голосов
/ 29 июля 2011

Разве у вас не может быть абстрактного класса asynctask, который реализует этот код запроса БД (если это все, что вы делаете в фоновом потоке, затем поместите его в doInBackground (), в противном случае поместите его в закрытый метод), а затеместь ваши конкретные дочерние классы, которые расширяют этот абстрактный класс, вызывают super.doInBackground или вызывают этот закрытый метод?

EG

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...