我的Android应用中有活动[A] [B] [C]。 - [A]是LoginActivity - [B]是DashboardActivity - [C]是InventoryListActivity
在每个[B]和[C]活动中,theres是一个注销按钮,代码为:
public void doLogout(){
// clear all preferences
// Return to the login activity
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
当我尝试使用此流[A] - >执行[C]活动中的注销按钮时[B] - > [C],它确实转到LoginActivty,但是当我按下后退按钮时,它会转到[B]活动。我想要的是如果按下后退按钮我想要进入Android主屏幕。
请告知,如何在执行注销功能时销毁所有活动。
答案 0 :(得分:3)
对于2.0之前的Android手机,你可以使用它:在你的活动中覆盖它
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
对于2.0以上,你可以覆盖它来检测背压并完成你的任务:
@Override
public void onBackPressed() {
// do something on back.
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
return;
}
希望它可以帮到你
答案 1 :(得分:-3)
尝试
System.exit(0);
或者
System.exit(1);
修改强>
忽略上述解决方案
您可以使用自定义广播接收器来执行注销功能。您需要点击此链接:
http://androidprogrammers.wordpress.com/2011/02/23/broadcastreceivers-and-context-sendbroadcast/