2016-08-06 3 views
0

вставить класс обслуживания, как следоватьФоновые службы не работают, пока приложение удалить из диспетчера задач

это мой код

public class MyTestService extends IntentService { 

     public MyTestService() { 
      super("MyTestService"); 
     } 

     @Override 
     protected void onHandleIntent(Intent intent) { 
      // Do the task here 
      Log.i("MyTestService", "Service running"); 

      // Toast.makeText(getApplicationContext(),"Start background",Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public int onStartCommand(Intent intent, int flags, int startId) { 

      return START_STICKY; 


     } 

     @Override 
     public IBinder onBind(Intent intent) { 
      return super.onBind(intent); 
     } 

     @Override 
     public void onDestroy() { 
      super.onDestroy(); 
      Log.i("MyTestService", "Service Destroy"); 
     } 

    }' 

Разрешение манифеста

Это зарегистрировать услуги

<service 
    android:name=".MyTestService" 
    android:process=".Broadcast_alram"`enter code here` 
    android:exported="false" > 
</service>' 

ответ

0

Не помещайте никакого кода, но ваш сервис IntentService, то есть он убьет его самостоятельно после обработки намерения. В вашем случае он выполнит Log. и завершить его самостоятельно, а также путем убийства, в котором он выполняется, если его отдельный процесс, чем приложение (в вашем случае это так, как вы указали его в манифесте).

Вы должны расширить класс обслуживания, а не IntentService, а также реализовать потоки для фоновых заданий. И когда у вас есть Сервис, вы должны остановить его самостоятельно с помощью stopSelf() или stopService(). https://developer.android.com/guide/components/services.html

+0

Он не работает в lenovo vibe (леденец). Когда я удаляюсь из диспетчера задач, он не работает. Средство обслуживания не работает на фоне –

+0

Я получил решение для этого. Проще всего это делаю. android: autoRemoveFromRecents = "true". Применение никогда не убивает. –

Смежные вопросы