Как запустить сервис Android постоянно как системный сервис?
Я хочу запустить свой сервис Android (сервис уведомлений в режиме реального времени) после установки приложения и заставить его работать, даже если приложение закрыто. Этот сервис отвечает за прослушивание моего сервера уведомлений в режиме реального времени, при получении уведомления я создаю уведомление Android и, возможно, запускаю свое приложение, если оно закрыто. Я предполагаю, что мой способ не подходит для этого случая, и есть другой способ работы с уведомлением в реальном времени. Буду благодарен, если вы дадите какую-нибудь ссылку или небольшое объяснение.
2 ответа
Лучший подход к прослушиванию моего сервера уведомлений в режиме реального времени - использовать GCM. здесь вы можете начать читать о GCM. и если вы хотите реализовать это самостоятельно, вы должны написать сервис самостоятельно. например:
public class ListenerService extends Service{
@Override
public void onStartCommand(Intent intent, int flags, int startId){
return START_STICKY; //this will restart your service even though the system kills
}
// you can write other listener service method inside the service
}
но все же я рекомендую вам использовать GCM или другие облачные службы обмена сообщениями вместо того, чтобы писать свои собственные.
Расширьте класс Android Service в своем классе, который вы хотите всегда запускать в фоновом режиме. Переопределите следующий метод и верните START_STICKY, который заставляет ваш сервис всегда работать в фоновом режиме, пока вы не остановите его.
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//your code here
return START_STICKY;
}
Если вам нужно выполнить какое-либо долго выполняемое задание, то создайте для него отдельный поток и используйте его внутри службы, поскольку служба работает в основном потоке.