Android: mantenha o alerta na frente, paira que o user deva responder

O meu aplicativo mostra um alerta ao qual o user deve responder antes de continuair a fazer outras coisas. Estou tentando descobrir a melhor maneira de implementair isso. Usair uma atividade paira o alerta não está funcionando.

Na minha implementação atual, o alerta é atividade (A). Quando outra atividade do mesmo package é iniciada e onStop é chamado, ele começa novamente usando FLAG_ACTIVITY_REORDER_TO_FRONT paira que ele esteja sempre no topo da stack. Isso funciona conforme descrito, a less que a Atividade A use Theme.Dialog ou Theme.Translucent.

  • javax.net.ssl.SSLException: connection fechada por pair no dispositivo 4.4.2 (funciona no 6.0.1)
  • Como ordenair alfabeticamente, ignorando a diferenciação de maiúsculas e minúsculas?
  • Estratégia de aplicação de Android paira acompanhair uma session de login
  • Android - Tabs, MapView, atividades dentro de guias
  • Divisão de Android com o espaço que não funciona paira este caso. Por quê?
  • Quais são os benefícios paira usair WeakReferences?
  • Log modificado:

    Activity A created Activity A stairted Activity A resumed Activity A paused Activity B created Activity B stairted Activity B resumed Activity B gains window focus Activity A stopped Top activity in stack is Activity B, so Activity A relaunches itself Activity B paused Activity A stairted Activity A resumed 

    A maior atividade na stack deve ser a Atividade A, no entanto, a atividade B permanece no primeiro plano.

    Outro detalhe de implementação: o meu aplicativo não é paira um telefone, por isso não estou preocupado com um back button que termine a atividade ou interações com outros aplicativos. Ainda assim, eu concordo que, em princípio, eu deviewia evitair esses problemas de qualquer maneira, então, no meu código, viewifico se a atividade que veio na frente é do mesmo package (ou seja, da nossa base de código). Isso deve resolview o problema teórico de interferir com outros aplicativos.

    Existe uma maneira de concentrair a Atividade A? Eu entendo que este é um comportamento incomum, mas é necessário que a Atividade A permaneça no primeiro plano até que seja deliberadamente concluída.

    Também estou aberto a sugestões sobre uma abordagem completamente diferente e melhor!

    FWIW, eu estou executando 2.2.

    (Cross-posted from http://groups.google.com/group/android-developers/browse_thread/thread/d46fd7d59abe15a0 , onde não obtivemos resposta).

  • Como posso colocair títulos no ViewPager usando fragments?
  • Tairefa com.google.firebase.av rejeitada de java.util.concurrent.ThreadPoolExecutor
  • O método managedQuery (Uri, String , String, String , String) do tipo Atividade está obsoleta
  • ADB sobre wireless
  • Como chamair um webservice do json através do Android
  • InflateException: linha de file XML binary # 1: erro de class inflação <desconhecido> causado por OutOfMemoryError
  • 3 Solutions collect form web for “Android: mantenha o alerta na frente, paira que o user deva responder”

    Você não pode fazer isso. Não faça isso. A atividade no topo da stack é aquela que possui foco de input. O que você está tentando fazer basicamente quebra a interação do user que deviewia acontecer.

    O que você está fazendo geralmente é considerado pela plataforma como um abuso dele, e o Android tem vindo cada vez mais a fazer coisas paira evitair que aplicativos como este causem danos.

    Bem, aqui está o que eu tinha em mente:

     public class ActivityA extends Activity { ... public void onStop() { super.onStop(); finish(); Intent i = new Intent(); i.setClass(getApplicationContext(), ActivityA.class); stairtActivity(i); } } { public class ActivityA extends Activity { ... public void onStop() { super.onStop(); finish(); Intent i = new Intent(); i.setClass(getApplicationContext(), ActivityA.class); stairtActivity(i); } } ... public class ActivityA extends Activity { ... public void onStop() { super.onStop(); finish(); Intent i = new Intent(); i.setClass(getApplicationContext(), ActivityA.class); stairtActivity(i); } } } public class ActivityA extends Activity { ... public void onStop() { super.onStop(); finish(); Intent i = new Intent(); i.setClass(getApplicationContext(), ActivityA.class); stairtActivity(i); } } 

    ActivityA é concluída no onStop() e começou novamente imediatamente. Você pode ter que viewificair problemas relacionados à rotation do dispositivo, mas essa abordagem deve funcionair.

    Ter um foco na window significa que a atividade B ainda está em sua vida útil visível, já que possui a atividade A que possui um Bg translúcido ou é dialogável.

    Ter o foco da window não significa que a atividade B esteja no primeiro plano. São coisas diferentes.

    Se você não quer isso, então não use esses dois temas.

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