Android 注销时终止所有活动
我的Android应用程序中有[A][B][C]活动。 -[A]是后勤活动 -[B]是仪表板活动吗 -[C]是InventoryListActivity 在每个[B]和[C]活动中,都有一个带有代码的注销按钮:Android 注销时终止所有活动,android,android-intent,Android,Android Intent,我的Android应用程序中有[A][B][C]活动。 -[A]是后勤活动 -[B]是仪表板活动吗 -[C]是InventoryListActivity 在每个[B]和[C]活动中,都有一个带有代码的注销按钮: public void doLogout(){ // clear all preferences // Return to the login activity Intent intent = new Intent(getBaseContext(),
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]->[B]->[C]在[C]活动中执行注销按钮时,它确实转到LoginActivity,但当我按下back按钮时,它转到[B]活动。我想要的是,如果按下后退按钮,我想进入Android主屏幕
请告知,如何在执行注销功能时销毁所有活动。对于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;
}
希望它能帮助你试试看
System.exit(0);
或
编辑
忽略上述解决方案
您可以使用自定义宽频广播接收器执行注销功能。您需要遵循以下链接:
因此,当您从活动a==>b移动时,必须完成该活动,完成活动a。从B==>C完成B。但在这种情况下,您必须管理后退按钮。如果用户单击活动B的后退按钮,则启动新活动以转到活动A,同时完成活动B.A=>B我已经在使用完成活动A。但是从b=>c我不使用finishactivityb,因为我仍然希望,如果用户按下c活动中的back按钮,它就能够转到b活动。在所有活动中是否都有复杂的代码而不是使用finish活动?请查看此链接并给出详细说明:另外
System.exit(1);