Android 注销时终止所有活动

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(),

我的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(), 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);