Подумайте о приложениях, которые имеют большие блоги (которые очень похожи на канал RSS, но для вашего телефона). Всякий раз, когда в блоге публикуется новое сообщение, приложение создает уведомление на телефоне пользователя о новом сообщении.
Вот некоторые вещи, которые я хотел бы рассказать об этом:
Большое спасибо.
Вы можете легко сделать что-то вроде этого:
Это решение опроса, которое должно быть хорошо и, вероятно, лучше в большинстве случаев, как вы описали.
Однако, если вы хотите использовать push-решение, вы можете посмотреть на Android C2DM, который позволяет вашему серверу отправлять push-уведомления зарегистрированному Android-устройству.
редактировать
Как приложения запускаются без запуска?
Ну, есть несколько способов. Во-первых, любое приложение может регистрироваться для разных событий устройства; одно из них - это событие с завершением загрузки.
Второй способ - использовать AlarmManager. Если приложение установило будильник, пользователь переходит от приложения, а затем ОС решит закрыть приложение, сигнализация может быть зарегистрирована для запуска в определенное время. Когда срабатывает эта тревога, будет запускаться любой код, который нравится разработчику приложения, включая запуск Сервиса. Конечно, делать это, не уведомляя пользователя, может быть проблемой, особенно если служба разряжает аккумулятор и т.д.
Конечно, есть много способов сделать это, но в общем случае я бы предположил:
Это уведомление вытягивается приложением на моем телефоне или нажимается на него блогом?
Это может быть и то.
Как это работает, даже если я не запустил приложение?
Ну, на Android 3. 1+ вам нужно будет запустить приложение хотя бы один раз, чтобы любой из этих материалов работал.
Помимо этого, они используют такие вещи, как AlarmManager
(для pull) или C2DM (для push), ни один из которых не требует, чтобы вы "запустили приложение", больше, чем вам нужно, чтобы открывать активность Gmail, чтобы иметь возможность получать новые сообщения электронной почты.
Sercvice
через Broadcast
после загрузки. См. Здесь: Как автозапуск приложения для Android?Service
при запуске, Служба похожа на активность, за исключением без интерфейса и работает в фоновом режимеService
время от времени ищет новые сообщения, реализованные, например, как Runnable
в ScheduledThreadPoolExecutor
Runnable
находит новое сообщение и делает уведомление Примечание. Это также решение для опроса. вместо ScheduledThreadPoolExecutor
вы можете использовать Handler
который всегда вызывает себя или просто Thread, который время от времени спит и просыпается. IMHO ScheduledThreadPoolExecutor - это "хороший" способ.