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;
}
}
Ich würde 'while (isRunning)' tun, aber was ist falsch mit Ihrem aktuellen Ansatz? Funktioniert es nicht? –
Ich denke Service läuft weiter bis Sie stopService() -Methode oder bis Sie das Telefon ausschalten –
Alle Android-Dienste laufen, bis Sie explizit stopService aufrufen oder das Telefon ausschalten .. –