Android AsyncTask - один подкласс на одну операцию базы данных? - PullRequest
4 голосов
/ 09 декабря 2010

У меня есть операция по инициализации игры, которая выполняет несколько операций выбора и вставки из нескольких таблиц SQLite.

Я пытаюсь понять AsyncTask, но из всех примеров, которые я читал, такдалеко, мне интересно, придется ли мне создавать подкласс AsyncTask для каждой отдельной операции с данными, которую мне нужно сделать?

Например, моя активность в NewGame выполняет следующие действия:

1) Insert new player record into PLAYER table
2) Insert new player's pet record into PET table
3) Select cursor of n records from INVENTORY
4) Insert array of ranomly chosen inventory items into PLAYER_OWNED table
5) ....more things of a similar nature

Там будет еще несколько селекторов и вставок для разных вещей, так что наличие отдельного подкласса для каждого из них сойдет с ума.Не говоря уже о том, что в этой игре будет около 8 действий, все из которых в значительной степени зависят от операций чтения и записи в базу данных.

Итак, в принципе, как лучше всего использовать AsyncTask для выполнения ряда различных операций SQLite?1010 *

1 Ответ

3 голосов
/ 09 декабря 2010

Вы можете передавать параметры в AsyncTask, даже больше, если вы используете вложенные предложения, вы можете использовать глобальные переменные внутри класса AsyncTask, с помощью одного из вышеупомянутых или обоих упомянутых вспомогательных средств, которые вы должны использовать тот же класс и пусть он делает разные вещи в зависимости от параметра, который вы передаете. Я не вижу реальной необходимости определять несколько AsyncTasks.

Вам потребуется , чтобы определить AsyncTask в каждом действии .

Я написал нужно , потому что вам действительно не нужно, но это удобно делать таким образом, и его легко читать / писать код, поскольку AsyncTask связан только с действием. Это, конечно, предполагает, что вы используете вложенные предложения, и я не вижу смысла писать отдельный файл класса только для AsyncTask.

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