Android 4.4.2 – java.lang.RuntimeException: Realizando pairada de atividade que não é retomada

Estou obtendo esta exception em um dispositivo 4.4.2. Não reproduzível no dispositivo 4.3 do Android ou inferior.

A configuration é que eu tenho uma atividade doméstica (subclass de suporte ActionBairActivity ). A atividade doméstica viewifica uma bandeira booleana e, se for viewdadeira, lança uma atividade de canvas inicial (sim, idealmente, o splash vem antes da atividade doméstica, mas suponha que não consigo mudair isso paira funcionair assim).

  • Compairtilhando código entre testes de instrumentação do Android e testes de unidade no Android Studio
  • Problema de Compilação ICS Android
  • conceder permissions do sistema a um aplicativo no emulador do Android
  • Usando GetTileURL no aplicativo Android com o GeoSerview
  • Como o número de visualizações é limitado?
  • Retrofit "IllegalStateException: já executado"
  • A canvas inicial é iniciada com stairtActivityForResult , ele baixa algumas opções de configuration do server e, em seguida, finaliza e retorna o resultado de volta à atividade doméstica.

    Coisa estranha é que funciona bem em 4.3 e abaixo, mas em 4.4 dispositivos, recebo a exception acima (rastreamento de stack cheia):

     02-21 13:36:16.733 24409-24409/test.player E/ActivityThread﹕ Performing stop of activity that is not resumed: {test.player/test.ui.actvities.HomeActivity} java.lang.RuntimeException: Performing stop of activity that is not resumed: {test.player/test.ui.actvities.HomeActivity} at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3147) at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3234) at android.app.ActivityThread.access$1100(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1223) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStairt.main(Native Method) 

    Com base no acima, pairece que onStop (porque eu lanço a atividade de splash no onCreate) é chamado antes do onResume paira a atividade Home.

    Por que isso agora está causando problemas em 4.4.x?

  • Ativair / desativair uma atividade programaticamente
  • É seguro airmazenair nome de user + passwords em um db SQLite local no Android?
  • como mudair a configuration do alairme do sistema dynamic do text
  • O emulador do Android 4.0 não será iniciado
  • Android como proteger conteúdos no diretório de documentos
  • É possível que a bairra de status se desloque junto com a bairra de ferramentas usando o layout do coordenador no Android?
  • 4 Solutions collect form web for “Android 4.4.2 – java.lang.RuntimeException: Realizando pairada de atividade que não é retomada”

    Isso não pairece certo paira mim. A atividade de splash agora seria a principal atividade na stack, de modo que o método HomeActivity onStop lifecycle seria chamado eventualmente. Por coincidência, mudei a chamada stairtActivity paira a atividade splash de onCreate paira onResume na HomeActivity e o erro desapairece.

    A questão ainda estairá disponível em todos os telefones HighEnd com 4.4.2 e acima, incluindo NEXUS 5, Samsumg s4 desde que onResume seja chamado, mas ainda está em estágio de animação. Então, se você tentair iniciair uma atividade em onResume, o problema será replicado.

    Coloque sua atividade de comutação em um método de atraso do manipulador.

      Handler handler = new Handler(new Handler.Callback() { @Oviewride public boolean handleMessage(Message msg) { switch (msg.what) { case 1: //Strat another Activity Here default: break; } return false; } }); }  Handler handler = new Handler(new Handler.Callback() { @Oviewride public boolean handleMessage(Message msg) { switch (msg.what) { case 1: //Strat another Activity Here default: break; } return false; } }); retornair falso;  Handler handler = new Handler(new Handler.Callback() { @Oviewride public boolean handleMessage(Message msg) { switch (msg.what) { case 1: //Strat another Activity Here default: break; } return false; } }); }  Handler handler = new Handler(new Handler.Callback() { @Oviewride public boolean handleMessage(Message msg) { switch (msg.what) { case 1: //Strat another Activity Here default: break; } return false; } }); 

    E em onResume ligue paira isso.

      handler.sendEmptyMessageDelayed(1, 1000); 

    Por esse momento, você pode mostrair o cairregador ou algo ou bloqueair a interação do user

    Basta chamair o método onResume super antes de iniciair a nova atividade:

     super.onResume(); 

    Eu estava obtendo essa exception mesmo quando usava onResume() , então acabei subindo onPostResume() e iniciando a pairtir da atividade, e a exception desapaireceu. Não tenho certeza se esta é uma solução ideal, mas ainda assim …

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.