[JAVA] Beenden Sie Service und Timer

Beschrieben, weil der Dienst zum regelmäßigen Erstellen von Screenshots nicht beendet wurde. Dienste mit Timer-Verarbeitung stoppen den Dienst, nachdem der Timer gestoppt wurde (Auch wenn nur der Dienst gestoppt wird, läuft der Timer hinter den Kulissen weiter und der Prozess bleibt bestehen). Hier wird die in Service definierte Task (Timer) von stopService abgebrochen und gestoppt.

Wenn Sie den Start des Dienstes bestätigen, läuft true weiter, es sei denn, der Timer wird gestoppt.

Dienstname: Dienst

Activity.java


        //Bestätigung der Timer-Verarbeitung
        SService ssservice= new SService();
        if(ssservice.task != null) {
            ssservice.task.cancel();
            ssservice.task = null;
        }

        //Dienstausfall
        android.content.Intent _intent;
        _intent = new android.content.Intent(getApplicationContext(), ssservice.class);
        getApplicationContext().stopService(_intent);

Sie können den Start des Dienstes mit den folgenden Quellen überprüfen. Bitte als Referenz

Activity.java


private boolean isMyServiceRunning(Class<?> serviceClass) {
        //Bestätigung des Servicestarts
        ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.getName().equals(service.service.getClassName())) {
                //Service gestartet
                return true;
            }
        }
        //Der Dienst wird nicht gestartet
        return false;
}

Recommended Posts

Beenden Sie Service und Timer
Docker-Compose Down und Stop