/ / Meilleure façon d’arrêter une liaison de service avec une ServiceConnection dans une activité sous Android? - android, service, android-activity, broadcastreceiver, android-intent

Le meilleur moyen d'arrêter une liaison de service avec un ServiceConnection dans une activité dans Android? - android, service, android-activity, broadcastreceiver, android-intentions

J'ai un service qui est lié à mon activité avecun ServiceConnection. Le service commence lorsque l'activité est créée et s'arrête dans ma classe BroadcastReceiver et fonctionne parfaitement. Maintenant, j'aimerai arrêter le service après une période donnée. Essayer TimerTask dans ma classe de service, mais ne semble pas fonctionner correctement.

Toute suggestion ou solution serait aimablement appréciée.

Merci.

Réponses:

0 pour la réponse № 1

Minuterie également traitée comme un fil indépendant.Le contexte peut donc être modifié lorsque vous essayez d’arrêter le service. Ma solution consiste à obtenir le service Pid du service actuel et à le supprimer à l’aide du Pid. L'attribut android: process sera spécifié dans androidmanifest.xml.

Processus de traitement = Runtime.getRuntime (). Exec ("kill pid"); InputStream est = process.getInputStream ();

ce code fonctionne bien. l'essayer une fois


0 pour la réponse № 2

Déclarez une statique dans votre application:

static Intent local_Intent;

Lors de la création de l'application, attribuez une nouvelle intention au service et établissez une liaison avec local_Intent:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
local_Intent = new Intent(this, yourAppService.class);
}

L'attribution à local_Intent est mémorisée car local_Intent est statique Lorsque vous souhaitez démarrer le service dans votre application

 startService(local_Intent);

Lorsque vous souhaitez arrêter le service dans votre application

 stopService(local_Intent);