Il processo è un errore errato non sembra essere molto ben documentato e sono riuscito solo a trovare soluzioni alternative. Sono invece interessato alla causa di questo errore e di come impedirlo e non a gestirlo manualmente tramite il riavvio, il riavvio dell'app, ecc.Impedisci l'errore di "processo errato" Android
La mia particolare applicazione utilizza un AlarmManager per avviare un IntentService che viene eseguito per ~ 10 s ogni ~ 30 s. Questo viene chiamato alla creazione dell'applicazione:
Intent serviceIntent = new Intent(appContext, MyService.class);
serviceIntent.putExtra("service_extra", extra);
launchService = PendingIntent.getService(
appContext,
LAUNCH_SERVICE_REQUEST_CODE,
scanIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
alarmManager.setInexactRepeating(
AlarmManager.RTC,
System.currentTimeMillis() + interval,
interval,
launchService
);
Questo funziona come previsto per la maggior parte del tempo. Tuttavia, molto raramente il servizio non verrà avviato per un periodo indefinito, a volte ore alla volta. Il seguente errore viene visualizzato ogni ~ 30 secondi, quindi so che i miei allarmi stanno tentando di avviare IntentService come pianificato, ma il tentativo non riesce con un processo è un errore grave.
Unable to launch app com.example.android/10024 for service Intent { cmp=com.example.android/.MyService (has extras) }: process is bad
Ciò viene risolto semplicemente riaprendo l'app. Ma ho bisogno di sapere come prevenirlo! Lo scopo di questo servizio è quello di essere eseguito in background mentre le attività vengono interrotte o distrutte, quindi è necessario prevenire questo errore senza alcuna interazione o soluzione da parte dell'utente.
C'è qualche variabile statica nel tuo servizio? – Rahul
Non sono sicuro, non ho toccato il codice in anni e non ho più accesso. Ma probabilmente sì. Come mai? – tep