java.lang. IllegalStateException: Not allowed to start service Intent

postado em: Android | 0

Olá pessoal,

Temos um aplicativo Android que roda uma sincronização em background de tempos em tempos utilizando IntentService (http://www.phaneronsoft.com.br/2018/08/10/iniciar-intentservice-android-com-alarmmanager-e-broadcastreceiver).

Este aplicativo inicialmente foi desenvolvido para rodar até a versão 7 do Android.

Quando o Android 8 foi liberado, migramos o SDK para a versão 27. Feito isso, quando o aplicativo estava em primeiro plano, estava tudo normal. Porém notamos que nos aparelhos com versão 8, quando o aplicativo não está rodando, o serviço de sincronização parou de iniciar automaticamente e gerando a exception java.lang.IllegalStateException: Not allowed to start service Intent.

Após algumas pesquisas, vi que a maneira como o serviço estava sendo iniciado foi alterado para a versão 8, como mostra a documentação de mudanças: https://developer.android.com/about/versions/oreo/android-8.0-changes.

Então foi só ajustar o código para o novo formato que funcionou corretamente.

Formato anterior :

Ajuste para Android 8:

 

Espero ter ajudado!

Comentários são bem-vindos.

Seguir Altieres Bianchi:

Analista Desenvolvedor Mobile e Web, formado pela Universidade Tuiuti do Paraná e pós-graduado pela UTFPR.