MetroList: prevenire il crash dovuto al doppio unbind del servizio

Scritto da Alessio il 15/03/2026

Problema

Una race condition nel ciclo di vita di MainActivity poteva chiamare unbindService() due volte e causare IllegalArgumentException.

Modifiche

Ho tracciato lo stato con isServiceBound, protetto le chiamate di unbind e raccolto la pulizia in safeUnbindService(). L’arresto del servizio è indipendente dal percorso di unbind.

Risultato

Il cleanup del servizio è deterministico e il doppio unbind non causa più il crash descritto.

Commit: MetrolistGroup/Metrolist@a00968f