在 Gluon 应用程序中防止后退按钮转到 Android/IOS 上的登录页面

Prevent back button from going to Login Page on Android/IOS in a Gluon App

我有一个 Gluon Mobile (Glisten Afterburner) 应用程序,我想阻止用户在 Android 中按后退按钮进入应用程序的登录屏幕。

Android 本机代码中的特定 activity 有多种方法可以做到这一点。我如何在 Gluon 中实现它。

在 LoginActivity 上调用 startActivity(intent) 后调用 finish()。它将从堆栈中删除 LoginActivity。

虽然@Bek 的回答将采用纯 Android 方法,使用 Gluon Views 和 Glisten-Afterburner 框架,但有一个等效的方法:

当您使用该模板创建项目时,有两个视图,用一些标志定义,如您在 AppViewManager:

中所见
public static final AppView PRIMARY_VIEW = view("Primary", PrimaryPresenter.class, MaterialDesignIcon.HOME, 
    SHOW_IN_DRAWER, HOME_VIEW, SKIP_VIEW_STACK);
public static final AppView SECONDARY_VIEW = view("Secondary", SecondaryPresenter.class, MaterialDesignIcon.DASHBOARD, 
    SHOW_IN_DRAWER);

应用于每个视图的标志是不言自明的,但如果您还记得,有一个 SKIP_VIEW_STACK 标志,应用于主视图(即主视图):这意味着主视图不是添加到堆栈中,当您返回它时,您不会转到之前的其他视图,您将完成应用程序。

您也可以将此标志应用到次要视图,这意味着一旦您从主要视图移至次要视图,您将无法再次返回到主要视图。

所以我重命名了视图,第一个将是登录视图,当您移动到主视图时,您将无法通过后退按钮返回到它:

public static final AppView LOGIN_VIEW = view("Login", LoginPresenter.class, MaterialDesignIcon.HOME, 
    SHOW_IN_DRAWER, HOME_VIEW, SKIP_VIEW_STACK);
public static final AppView PRIMARY_VIEW = view("Primary", PrimaryPresenter.class, MaterialDesignIcon.DASHBOARD, 
    SHOW_IN_DRAWER, SKIP_VIEW_STACK);

在以后的状态下,如果需要,您可以随时以编程方式转到登录视图。