android - 完成 Activity 之前开始的所有 Activity

标签 android android-activity stack

我想完成应用程序中正在运行的所有 Activity 意味着想从堆栈中删除所有父 Activity 。

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

最佳答案

我应该让你知道这不是在 android 中推荐的行为,因为你应该让自己管理 Activity 的生命周期。

但是如果你真的需要这样做,你可以使用FLAG_ACTIVITY_CLEAR_TOP

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

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);
    }
}

如果你想退出整个应用,你可以使用下面的代码并 checkin 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();
    }
}

希望这对您有所帮助。

关于android - 完成 Activity 之前开始的所有 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211444/

相关文章:

android - 选择多个 kotlin 按钮并在 findViewById() 中使用变量 - android studio

android - Android 是否支持锁定到完全替换的界面?

android - Android 上未显示通知

java - android字节码中单个 Activity 的多个 Activity 文件

android - 将数据传递到上一个 fragment

堆栈上的 C 数组

android - onTouchEvent()中如何区分拖动和点击?

android - 如何知道 CustomAdapter 正在处理哪个 Activity ?

java - 使用堆栈在 java 中获取 infix/postfix 的错误输出

ios - Xcode 堆栈跟踪未出现在控制台中