Служба или поток или AsyncTask? - PullRequest
1 голос
/ 26 ноября 2011

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

timer.scheduleAtFixedRate(new TimerTask() {...

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

Ответы [ 2 ]

0 голосов
/ 27 ноября 2011

, если вы показываете уведомления, почему бы не использовать сообщения C2DM для связи с приложением. Единственное, что будет отображаться всплывающие окна, даже если ваше приложение не работает. Нет необходимости использовать темы / сервисы.

0 голосов
/ 26 ноября 2011

Служба, связывающаяся с действием, называется связанная служба , это то, что вы должны использовать IMO.

Однако вы говорите, что когда действие прекращается, служба должна продолжать работать. Но если служба связана с вашей деятельностью, а активность умирает, служба тоже умирает.

Я предлагаю вам прочитать здесь об этом.

Проверьте и посмотрите, можете ли вы привязать сервис к действию, а когда он умирает, отсоедините и дайте сервису работать независимо.

Если вы не можете, действие может отменить привязку, а затем запустить службу самостоятельно (с startService вместо bindService).

...