Encerrar aplicação

Galera, tenho uma aplicação que tem uma tela de Login e mais algumas telas. Quando clico no Menu Sair de minha aplicação, volta na tela de Login. Gostaria que encerrasse o aplicativo. Alguém tem uma ideia de como faz?

É android?

É. To usando o finish no switch-case, mas cai na tela de login

finish() volta à tela que invocou a activity anterior. Não existe mecanismo próprio no android para fazer isso, pois este comportamento não é esperado. Você ja percebeu que apps famosos como Gmail, Maps, app de Contatos não tem um botão Sair ou Finalizar?

leia mais sobre:

https://www.google.com.br/#q=android+finish+app

Estou lendo o link e não estou achando nada, tem como me ajudar?

É o link da pesquisa. No primeiro site já tem uma boa discussão sobre o assunto.

Vi esse link:


http://stackoverflow.com/questions/4732184/how-to-finish-an-android-application

Não estou entendendo bem ao certo o que tem que fazer.

Leia também a documentação da API:

http://developer.android.com/reference/android/app/Activity.html

Nela você vai encontrar um diagrama contendo o ciclo de vida de uma activity.

Pensei nesse OnDestroy. Não sei como usá-lo.

Hmmm. Acho que entendi melhor o que você quer e acho que da pra fazer sim. Quando você invoca finish() em uma Activity, esta é finalizada e o android volta o fluxo para a Activity que a invocou, por isso está voltando para o login.

Vamos com calma. A Activity que tem o botão “Sair” provavelmente foi invocado da Activity de login, certo? Poste o código (classe inteira) da Activity de login.

Segue Login.java

package com.br.aquavendas;

import com.br.aquavendas.vo.Global;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Login extends Activity{
	public static Global global = new Global();

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.login);
		
		final EditText edtLogin = (EditText) findViewById(R.id.edtLogin);
		final EditText edtSenha = (EditText) findViewById(R.id.edtSenha);
		
		edtLogin.setText("");
		edtSenha.setText("");
		
		final SharedPreferences preferencia = getSharedPreferences("config", 0);
		
		Button btnLogar = (Button) findViewById(R.id.btnLogar);
		
		btnLogar.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				String login = preferencia.getString("login", "admin");
				String senha = preferencia.getString("senha", "123");
				
				if (login.equals(edtLogin.getText().toString())){
					if (senha.equals(edtSenha.getText().toString())){
						startActivity(new Intent(getBaseContext(), Main.class));
						global.setUsuarioLogado(edtLogin.getText().toString());
					}
				}
				
			}
		});

	} // Fim onCreate


}

g4j

A classe Login ta postada ai, ok? No aguardo de uma ajuda quando possível.

Faz assim:
Na tela de login, se o usuário e senha forem digitados corretamente, chama a próxima atividade e invoca o método finish(); logo após. Assim, a tela de login vai ser fechada, e quando vc voltar, o aplicativo será encerrado, pq não existe mais a atividade de login na pilha de atividades.

m_araujo01, Seria no botão Logar da Classe Login?

		Button btnLogar = (Button) findViewById(R.id.btnLogar);
		
		btnLogar.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				String login = preferencia.getString("login", "admin");
				String senha = preferencia.getString("senha", "123");
				
				if (login.equals(edtLogin.getText().toString())){
					if (senha.equals(edtSenha.getText().toString())){
						startActivity(new Intent(getBaseContext(), Main.class));
						global.setUsuarioLogado(edtLogin.getText().toString());
					}
				}
				
			}
		});

Olá
É só colocar o finish() após o global.setUsuarioLogado(edtLogin.getText().toString());

Ok, obrigado. Vou testar.

[quote=A H Gusukuma]Olá
É só colocar o finish() após o global.setUsuarioLogado(edtLogin.getText().toString()); [/quote]

Não entendi. Finaliza a activity após fazer o login?

É o que disseram pra fazer, tem alguma sugestão?

Já testou? O que ocorreu?

Estou testando no momento. Já posto o resultado.