Как запустить сервис 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;
    }

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

Другие вопросы по тегам