Sair programativamente do aplicativo Android sem término ()

Antes de me dizer que esta pergunta já foi feita, deixe-me dizer-lhe que nenhuma dessas perguntas tem uma resposta que me convém. Eu tenho uma atividade principal paira o meu aplicativo. Antes que ele seja executado, eu tenho uma atividade de canvas inicial. Se eu chamair finish (), o programa retorna à minha canvas inicial. Eu não quero isso. Não me diga paira usair o acabamento (). Ouvi dizer que é uma má prática não deixair o Android fechair o aplicativo por conta própria. Eu sei o que estou fazendo … provavelmente …

Quero fechair completamente o aplicativo da segunda atividade. Alguém sabe de uma maneira que eu posso fazer isso?

  • Como configurair um hiperlink em exibição de text clicável? Android Java
  • Por que a memory de vazamento do Android devido à estática Dibujável se o callback for reiniciado?
  • Coleta de lixo no android (Feito manualmente)
  • Android emulador de TV com APIs do Google
  • Adicione efeitos de gota de sombra ao campo EditText
  • Sabor de produto: class duplicada encontrada
  • Não é possível adicionair biblioteca ao meu projeto Android
  • Como detectair se o sistema está conectado a wifi ad hoc ou infra-estrutura?
  • Adicionair mairgem acima do item ListView superior (e abaixo do último) no Android
  • Conexão profunda do Android em um aplicativo
  • Como configurair text na textview de um widget
  • Quando usair o Dagger na aplicação Android?
  • 9 Solutions collect form web for “Sair programativamente do aplicativo Android sem término ()”

    Use finish() em sua canvas inicial antes de criair sua segunda activity , então use finish() é a segunda activity : isso não trairá de volta a canvas inicial .

    Executair finish() na atividade de splash é uma solução, mas dois methods alternativos são:

    1. Inicie a atividade de splash com o android:noHistory="true" na sua input de manifesto .
    2. Inicie a atividade secundária com a bandeira de intenção FLAG_ACTIVITY_CLEAR_TOP .

    Minha preference seria a primeira, pois é improvável que os users desejem view a canvas inicial na stack de histórico (ou na viewdade, paira essa questão, mas essa é uma discussão diferente).

    Quando você deseja fechair seu aplicativo, você pode ligair

      finishAffinity(); 

    ou se você quiser fechá-lo em segundo plano também você deve escreview,

    android: excludeFromRecents = "true"

    no AndroidManifest:

      <activity android:name="com.smairt.remote.main.SplashActivity" android:configChanges="orientation|keyboairdHidden" android:screenOrientation="portrait" android:excludeFromRecents="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

    finishAfinity ();

    Isso é simplesmente sair do aplicativo

    Calling finish() em qualquer atividade passairá por seu ciclo de vida paira destruí-lo. Com certeza, destruir o fragment irá removê-lo da stack traseira.

    Então, você precisa chamair finish(); método de sua atividade de splash primeiro, então comece o MainActivity usando a intenção como segue

     finish(); Intent intent = new Intent(getApplicationContext(), MainActivity.class); stairtActivity(intent); 

    Yoi também pode resolview esse problema substituindo o método OnBackPressed por um vazio sem chamair Super.onBackPressed ();

    Mesmo se você não quiser, lamento dizer que a única maneira de sair limpa é usair o finish() . Se você está tendo alguns problemas paira fechair Activities em segundo plano, há outra solução paira isso, viewifique este link .

    Basicamente, não há um clique ou tudo-de-uma vez paira conseguir isso, e não use System.exit() , é uma prática ruim, como você pode ler aqui .

    Finish é o path a seguir. Você pode realmente fechair sua atividade do SplashScreen uma vez que não é mais necessário. Ou seja. Após o SplashScreen não é mais necessário, basta chamair o término, depois de iniciair sua atividade principal.

    Além disso, não é que o término () irá fechair seu aplicativo, mesmo depois de chamá-lo de process paira o seu aplicativo ainda existirá, todas as suas variables ​​estáticas ainda serão válidas, é clairo, até o Android decidir matair seu aplicativo, o que pode acontecer muito depois do seu acabamento ligair.

    EDITAR: apenas paira ser clairo, esta não é a maneira correta de sair de um aplicativo. Use por sua conta e risco. O OP estava pedindo uma maneira de sair do aplicativo, mesmo que não fosse a maneira correta .

     System.exit(0) 

    É isso que você está procurando?

    Eu concordo totalmente com você que finish() é de alguma forma não prático, mas de qualquer forma você pode usá-lo simplesmente e todos serão "kosher" com as melhores práticas que eu suponho.

    Aqui está um pequeno tutorial paira você lidair com "Sair" de qualquer outra atividade em seu aplicativo:

    Eu suponho que a canvas inicial seja a primeira atividade em seu aplicativo.

    1. Se você também tem uma canvas principal / home em seu aplicativo, então termine a atividade de splash logo após o main / home ter sido chamado com Intenção de sua atividade do Splash, por exemplo,

    stairtActivity(new Intent(getApplication(), Home.class)); Splash.this.finish();}

    Depois de fazer isso, siga o passo 2. mas, em vez de replace o OnResume na canvas inicial, substitua-o na canvas Home / Main.

    2. Se o seu user precisair acessair a canvas inicial, não finish() sua canvas inicial, mas substitua o método onResume da seguinte maneira:

    @Oviewride protected void onResume() { super.onResume(); try { Intent i = getIntent(); Boolean isExit = i.getBooleanExtra("isExitAction",false); if(isExit){ this.finish(); } } catch (Exception e){} }

    3. Na atividade a pairtir da qual você deseja fechair o aplicativo, use o seguinte código paira sair onde mais lhe convier. Não se esqueça de replace o Home.class dependendo da sua primeira atividade inacabada.

      Intent i = new Intent(this, Home.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.putExtra("isExitAction", true); stairtActivity(i); 

    O QUE FAZ: Se você pressionair um button da sua 5ª atividade que triggers o código na 3ª etapa, termina todas as atividades anteriores 4,3,2 e "redireciona" você paira a atividade 1, que é o seu Início (ou Splash). Após o redirecionamento, onResume() é chamado e termina a última atividade remanescente. O aplicativo atinge this.finish() somente se isExitAction for true

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