注销时杀死所有活动

时间:2012-01-16 13:12:01

标签: android android-intent

我的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主屏幕。

请告知,如何在执行注销功能时销毁所有活动。

2 个答案:

答案 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/