Android Asynctask - один подкласс на операцию базы данных?

StackOverflow https://stackoverflow.com/questions/4400677

Вопрос

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

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

Например, моя активность 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?

Это было полезно?

Решение

Вы можете пройти параметры на асинктюсс, даже больше, если вы используете вложенные герметики, вы можете использовать глобальные переменные изнутри в классе Asynctask, используя один из вышеперечисленных или обоих упомянутых СПИДа, которые вы сможете использовать один и тот же класс и иметь его Различные вещи в зависимости от параметра, который вы проходите. Я не вижу никакой реальной необходимости определять несколько асинктюзских.

Ты будешь нужно определить асинктюс в каждой деятельности.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top