在活动开始之前完成所有活动

Poo*_*ora 6 stack android android-activity

我想完成在应用程序中运行的所有活动意味着要从堆栈中删除所有父活动.

我想在我的应用程序本地实现注销功能,所以我在想,我将完成之前开始的所有活动,并将再次开始登录活动..

Thi*_*ris 8

我应该让你知道这不是android中推荐的行为,因为你应该让自己管理活动的生活圈子.

但是,如果您确实需要这样做,可以使用FLAG_ACTIVITY_CLEAR_TOP

我在这里给你一些示例代码,其中MainActivity是应用程序中的第一个活动:

public static void home(Context ctx) {
    if (!(ctx instanceof MainMenuActivity)) {
        Intent intent = new Intent(ctx, MainMenuActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        ctx.startActivity(intent);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果要退出整个应用程序,可以使用以下代码并检查MainActivity以完全退出应用程序:

    public static void clearAndExit(Context ctx) {
    if (!(ctx instanceof MainMenuActivity)) {
        Intent intent = new Intent(ctx, MainMenuActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        Bundle bundle = new Bundle();
        bundle.putBoolean("exit", true);
        intent.putExtras(bundle);
        ctx.startActivity(intent);
    } else {
        ((Activity) ctx).finish();
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.