Como desativar o botão Voltar no Android durante o logout do aplicativo?
Como desativar o botão Voltar no Android durante o logout do aplicativo?
Respostas:
Substitua o método onBackPressed e não faça nada se você pretender manipular o botão Voltar no dispositivo.
@Override
public void onBackPressed() {
if (shouldAllowBack()) {
super.onBackPressed();
} else {
doSomething();
}
}
Se procurar um nível de API 2.0 mais alto e acima, isso funcionará muito bem.
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}
Se estiver procurando por nível de API Android até 1.6.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
return true;
}
return super.onKeyDown(keyCode, event);
}
Escreva o código acima em sua atividade para evitar que o botão voltar seja pressionado
Você pode fazer desta maneira simples Não chame super.onBackPressed ()
@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables back button in current screen.
}
Simplesmente substitua o método onBackPressed () .
@Override
public void onBackPressed() { }
Estou usando .............
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK)
Toast.makeText(getApplicationContext(), "back press",
Toast.LENGTH_LONG).show();
return false;
// Disable back button..............
}
Se você deseja garantir que seu aplicativo cliente Android seja desconectado de algum servidor antes que sua Atividade seja interrompida -> efetue logout com um serviço em seu próprio encadeamento (é isso que você deve fazer de qualquer maneira).
Desativar o botão Voltar não resolverá nada para você. Você ainda terá o mesmo problema quando o usuário receber uma ligação, por exemplo. Quando uma chamada telefônica é recebida, sua atividade tem mais chances de ser morta antes de receber uma resposta confiável da rede.
É por isso que você deve deixar um serviço aguardar em sua própria thread a resposta da rede e, em seguida, tentar novamente se não tiver êxito. O serviço Android não só tem muito menos probabilidade de ser morto antes de receber uma resposta, mas também deve ser morto antes de terminar o trabalho, mas sempre pode ser revivido pelo AlarmManager para tentar novamente.
Basta substituir o método onBackPressed () e não é necessário chamar a super classe do método onBackPressed ou outros.
@Override
public void onBackPressed()
{
}
Ou passe sua atividade atual para o método onBackPressed ().
@Override
public void onBackPressed()
{
startActivity(new Intent(this, myActivity.class));
finish();
}
Substitua o nome da atividade requerida para myActivity.
se você estiver usando fragmento, chame primeiro o método callParentMethod ()
public void callParentMethod(){
context.onBackPressed(); // instead of context use getActivity or something related
}
então chame o método vazio
@Override
public void onBackPressed()
{
}
se você estiver usando FragmentActivity
. então faça assim
primeira chamada Isto dentro do seu Fragment
.
public void callParentMethod(){
getActivity().onBackPressed();
}
e, em seguida, chame o onBackPressed
método ao lado da FragmentActivity
classe pai .
@Override
public void onBackPressed() {
//super.onBackPressed();
//create a dialog to ask yes no question whether or not the user wants to exit
...
}
Você pode substituir o onBackPressed()
método em sua atividade e remover a chamada para superclasse.
@Override
public void onBackPressed() {
//remove call to the super class
//super.onBackPressed();
}
Você só precisa substituir o método do botão Voltar. Você pode deixar o método vazio, se desejar, para que nada aconteça ao pressionar o botão Voltar. Por favor, dê uma olhada no código abaixo:
@Override
public void onBackPressed()
{
// Your Code Here. Leave empty if you want nothing to happen on back press.
}
Além de formar esses dois métodos a partir da resposta acima.
onBackPressed () (nível de API 5, Android 2.0)
onKeyDown () (API nível 1, Android 1.0)
Você também pode substituir o dispatchKeyEvent()
(API Nível 1, Android 1.0) assim,
dispatchKeyEvent()
(API nível 1, Android 1.0)
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.dispatchKeyEvent(event);
}
Desativar botão traseiro no android
@Override
public void onBackPressed() {
return;
}
Tente o seguinte:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}