No desenvolvimento Android, não se deve criar botão "Sair" / "Exit" que chama finish() ou System.exit(0). O Android gerencia ciclo de vida de Activities e processos automaticamente. Usuário sai pressionando "Voltar" (Back), "Início" (Home) ou "Recentes" e deslizando. Forçar fechamento vai contra guidelines (Material Design), causa vazamentos, impede estado salvo, quebra navegação "Up", afeta recents.
finish() só finaliza Activity atual, não o processo.System.exit(0) / Process.killProcess() mata processo abruptamente: não salva estado (onSaveInstanceState), não executa onDestroy limpo, corrompe preferências/banco, falha no Jetpack Lifecycle, WorkManager, Foreground Service.onBackPressedDispatcher (Activity/Fragment) → Navega para destino anterior no grafo de navegação (Navigation Component) ou finish() se raiz.onStop() → onSaveInstanceState() → Processo cached. Sistema mata se precisar.// Kotlin - Activity
binding.btnExit.setOnClickListener {
// Opção 1: Fechar task (remove de recents) - API 21+
finishAndRemoveTask()
// Opção 2: Apenas finish() esta activity (padrão)
// finish()
// Opção 3: Matar processo (EVITE - último recurso)
// Process.killProcess(Process.myPid())
// System.exit(0)
}
// No Manifest, se for launcher/kiosk:
<activity
android:name=".MainActivity"
android:excludeFromRecents="true"
android:autoRemoveFromRecents="true"
android:finishOnTaskLaunch="true" />
Tecnologia Eletrônica © [www.351231.com]