Ho 2 attività, A & B. Il servizio inizia in B con tale codice:Come interrompere il servizio da un'altra attività in Android?
startService(new Intent(this, PlayerService.class));
Intent connectionIntent = new Intent(this, PlayerService.class);
bindService(connectionIntent, mp3PlayerServiceConnection, Context.BIND_AUTO_CREATE);
private ServiceConnection mp3PlayerServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName arg0, IBinder binder) {
mp3Service = ((LocalBinder) binder).getService();
Thread t = new Thread() {
public void run() {
mp3Service.playSong(getApplicationContext(),url);
}
};
t.start();
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
}
};
ho bisogno di avere la possibilità di chiudere il servizio quando sono in attività A (B è chiusa, ma musica ascolti). Come chiamare StopService da A onDestroy()? Devo separarmene, se sì, come e dove?
Inserire semplicemente stopService(new Intent(this,PlayerService.class));
porta a un errore: l'attività B ha interrotto la connessione di servizio ... che era originariamente legata qui. (Ma B è già chiusa)
Grazie, proverò – Tramway11
startService in onCreate, collego onStart e si disattiva in onStop. –
Sembra funzionare, se solo più esecuzioni di B e di nuovo su A non possono causare alcuni problemi (ad esempio, la connessione non è stata attivata/disattivata nel tempo, alcuni problemi concomitanti). – Tramway11