Никогда не заканчивая фоновую ветку? - PullRequest
1 голос
/ 06 февраля 2011

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

Что касается опроса, я знаю, что могу реализовать службу или асинхронный поток.Я также нашел класс timertask.

Для AsyncThread: Могу ли я, чтобы это повторялось постоянно?Буду ли я вызывать метод .start из

для TimerTask: это менее эффективно, чем асинхронный поток или служба?

Также нужно ли создавать TimerTask внутри потока?или он будет создавать свои собственные темы?

1 Ответ

1 голос
/ 06 февраля 2011

Попытка превратить сервер в клиента, а клиента в сервер - это все равно, что пробиться через неправильное отверстие. Это борьба с природой оригинального дизайна.

Во-первых, вы не можете полагаться на то, что ваше приложение будет постоянно включено, а не на телефоне. Приложения на мобильных телефонах имеют низкий приоритет. Приложения на мобильных телефонах имеют ограниченную энергию, которую они могут использовать. Приложения на мобильных телефонах также не всегда будут подключены к Интернету.

Итак, во-первых, вы захотите использовать Сервис в своем собственном потоке (вы можете использовать AsyncTask, если хотите). Вашему сервису потребуется собственный поток, чтобы он не блокировал поток пользовательского интерфейса в ожидании ответов. И вы захотите использовать AlarmManager для пробуждения или прекращения работы вашей Службы по мере необходимости (поскольку ваша Служба обязательно будет убита несколько раз по своей вине).

...