Alterar programaticamente a atividade principal (iniciar) no Android

Meu cenário

Estou desenvolvendo um aplicativo baseado em web socket no android. O aplicativo contém global WebSocketConnection. De acordo com o status da conexão do web socket, preciso alterar a atividade de inicialização (quando o usuário clicar no ícone de inicialização, duas atividades diferentes precisam ser iniciadas, de acordo com o status da conexão do web socket). A seguir estão os dois cenários.

  1. Se o web socket já estiver conectado – Iniciar HomeActivty
  2. Se o web socket não estiver conectado – Iniciar SplashActivity

Implementação

  • Primeiro, criei LaunchActivitysem IU e a defini como atividade principal (inicialização). Para criar uma atividade sem IU, podemos usarTheme.NoDisplay

Cenário

  • LaunchActivitydetermina qual atividade exibir de acordo com o status de conexão do websocket. A seguir está a implementação deLaunchActivity

https://github.com/erangaeb/dev-notes/blob/master/android-launch/LaunchActivity.java

  • A seguir está a parte do meu AndroidManifest.xmlque define as atividades e seus temas

https://github.com/erangaeb/dev-notes/blob/master/android-launch/AndroidManifest.xml