Aquí probé el programa de servicio simple. El servicio de inicio funciona bien y genera Toast, pero el servicio de detención no funciona. El código de este servicio simple es la siguiente:detener el servicio en android
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();
}
}
el código de la actividad desde donde se llama a este servicio es la siguiente:
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));
}
});
}
}
me ayuda para dejar de servicio con ese botón de parada que genera brindis en el método onDestroy(). Ya he visto muchas publicaciones relacionadas con el problema de detención de servicio aquí, pero no son satisfactorias, por lo que se publica una nueva pregunta. Espero una respuesta satisfactoria.
¿'stopService (serviceIntent)' no funciona? –
* "Además, tenga en cuenta que el momento exacto del servicio de ser destruida corresponde a Android y puede no ser inmediata." * Desde: http://stackoverflow.com/questions/2176375/android-service-wont-stop/2176415 # 2176415 – bigstones
@chris: Creo que el método stopService (serviceIntent) tal como lo implementé anteriormente no funcionó porque Toast at onDestroy() no se produjo al hacer clic en el botón de detención. –