Запуск двух потоков в службе Android - PullRequest
2 голосов
/ 21 августа 2011

Я хотел бы создать службу, которая при запуске инициализирует соединение с электронными таблицами Google, а затем периодически отправляет данные в электронную таблицу из базы данных.

Можно ли создать два потока: один, который подключается к электронным таблицам Google, и второй, который проверяет изменения в базе данных и обновляет электронную таблицу.

Я думал о запуске первого потока (подключение к таблицам Google) из onCreate и второго из onStartCommand.Это плохая практика?У кого-нибудь есть отзывы о том, как я могу это сделать?

Спасибо, и, пожалуйста, дайте мне знать, если что-то, что я сказал, неясно.

1 Ответ

4 голосов
/ 21 августа 2011

Зачем вам нужно запустить два потока? Ваша работа выглядит последовательной: сначала получите данные из базы данных, а затем отправьте их в электронную таблицу. Вы можете сохранить секунду или две, если вы уже прошли проверку подлинности в Документах Google к тому времени, когда вы получите данные базы данных, но если вам нужно будет работать в фоновом режиме, они не будут видны. И поскольку кажется, что это нужно запускать только время от времени, вы должны запланировать запуск службы через определенные промежутки времени, используя AlarmManager, и позволить ей отключиться, как только она закончит свою работу. Попробуйте использовать IntentService для этого, он запустит фоновый поток для выполнения работы и автоматически отключится.

...