Ici, j'ai essayé un programme de service simple. Le service de démarrage fonctionne bien et génère des Toast mais pas le service d'arrêt. Le code de ce service simple est le suivant :
public class MailService extends Service {
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
public void onCreate(){
super.onCreate();
Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
}
public void onDestroyed(){
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_SHORT).show();
super.onDestroy();
}
}
Le code de l'activité à partir de laquelle ce service est appelé est le suivant :
public class ServiceTest extends Activity{
private Button start,stop;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.service_test);
start=(Button)findViewById(R.id.btnStart);
stop=(Button)findViewById(R.id.btnStop);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startService(new Intent(ServiceTest.this,MailService.class));
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
stopService(new Intent(ServiceTest.this,MailService.class));
}
});
}
}
Aidez-moi à arrêter le service avec ce bouton d'arrêt qui génère un toast dans la méthode onDestroy(). J'ai déjà vu de nombreux messages concernant le problème d'arrêt du service ici, mais ils ne sont pas satisfaisants, c'est pourquoi je poste une nouvelle question. J'espère obtenir une réponse satisfaisante.