Android: service Stop / Start créé dans onCreate ()

J’ai actuellement un service qui est démarré dans la méthode onCreate d’une activité en utilisant:

Intent intentService = new Intent(this, MainService.class); this.startService(intentService); 

Je dois maintenant pouvoir arrêter ce service sur une touche et le redémarrer à nouveau, mais je ne sais pas comment arrêter ce service et le redémarrer en dehors de la méthode onCreate.

Je suppose que je devrais démarrer le service d’une manière différente de ce que je fais actuellement? Mais je ne suis pas sûr de la meilleure méthode pour cela.

J’avais l’air de stopper le service dans Android, mais leur méthode de démarrage du service ne semble pas fonctionner dans onCreate.

Une vue plus complète de mon code:

 public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lock = (Button) this.findViewById(R.id.lock); unlock = (Button) this.findViewById(R.id.unlock); lock.setOnClickListener(btn_lock); unlock.setOnClickListener(btn_unlock); unlock.setVisibility(View.VISIBLE); lock.setVisibility(View.GONE); Intent intentService = new Intent(this, MainService.class); this.startService(intentService); } private OnClickListener btn_lock = new OnClickListener() { public void onClick(View v) { unlock.setVisibility(View.VISIBLE); lock.setVisibility(View.GONE); } }; private OnClickListener btn_unlock = new OnClickListener() { public void onClick(View v) { unlock.setVisibility(View.GONE); lock.setVisibility(View.VISIBLE); } }; 

Lorsque vous souhaitez démarrer un service, il vous suffit

  startService(new Intent(this, MainService.class)); 

Et pour arrêter un service à tout moment, il suffit d’appeler

 stopService(new Intent(this, MainService.class)); 

Rappelez-vous que le service doit être déclaré dans AndroidManifest.xml. Comme vous l’avez dit, votre service fonctionne. Je suis sûr que vous l’avez fait. Toujours AndroidManifest.xml