[JAVA] Arrêter le service et la minuterie

Décrit parce que le service de capture d'écran sur une base régulière ne s'est pas terminé. Les services avec traitement par minuterie arrêtent le service après l'arrêt du minuteur (Même si seul le service est arrêté, le minuteur continue de fonctionner dans les coulisses et le processus reste). Ici, la tâche (timer) définie dans Service est annulée et arrêtée par stopService.

Lors de la confirmation du démarrage du service, true continuera à passer à moins que le chronomètre ne soit arrêté.

Nom du service: Service

Activity.java


        //Confirmation du traitement de la minuterie
        SService ssservice= new SService();
        if(ssservice.task != null) {
            ssservice.task.cancel();
            ssservice.task = null;
        }

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

Vous pouvez vérifier le démarrage du service avec les sources suivantes. S'il vous plaît pour référence

Activity.java


private boolean isMyServiceRunning(Class<?> serviceClass) {
        //Confirmation du démarrage du service
        ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.getName().equals(service.service.getClassName())) {
                //Service commencé
                return true;
            }
        }
        //Le service n'est pas démarré
        return false;
}

Recommended Posts

Arrêter le service et la minuterie
docker-composer vers le bas et arrêter