2016-05-07 6 views
0

Ich habe eine Service in meiner Android-Anwendung, die auf BOOT_COMPLETE läuft gestartet. Ich möchte meine Service non-stop (Lauf immer) ausführen, und dafür habe ich while(true) innerhalb onStartCommand() Methode verwendet. Ist es also in Ordnung, while(true) zu verwenden oder gibt es eine andere bessere Möglichkeit, einen Dienst immer im Hintergrund auszuführen?So führen Sie einen Dienst immer im Hintergrund (Non-Stop) - Android

Dies ist Code meines Service:

package com.example.abc.project1; 

import android.app.Service; 
import android.content.Intent; 
import android.os.IBinder; 
import org.json.*; 
import java.io.*; 
import java.net.*; 
import java.util.*; 


public class HelloService extends Service { 

    private static final String TAG = "HelloService"; 
    private boolean isRunning = false; 

    @Override 
    public IBinder onBind(Intent arg0) { 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     isRunning = true; 
    } 


    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       while(true) { 
        /*non-stop work to be done in background always*/ 
       } 
      } 
     }).start(); 
     return Service.START_STICKY; 
    } 


    @Override 
    public void onDestroy() { 
     isRunning = false; 
    } 

} 
+0

Ich würde 'while (isRunning)' tun, aber was ist falsch mit Ihrem aktuellen Ansatz? Funktioniert es nicht? –

+1

Ich denke Service läuft weiter bis Sie stopService() -Methode oder bis Sie das Telefon ausschalten –

+1

Alle Android-Dienste laufen, bis Sie explizit stopService aufrufen oder das Telefon ausschalten .. –

Antwort

Verwandte Themen