重新启动时重新进行身份验证 - Android

2023-12-24

每次调用 onRestart 时,我都需要重新验证用户凭据(通常这意味着用户已锁定和解锁屏幕或将其置于后台然后返回)。

所以我这样做了:

@Override
protected void onRestart() {
    super.onRestart();

    Intent intent = new Intent(this, LoginActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setAction(LoginActivity.REAUTHENTICATE);
    startActivity(intent);
}

这有效,显示了 LoginActivity,但是当它完成时,第一个 Activity 的 onRestart 被再次调用,并且 LoginActivity 再次打开。

我该如何处理?


好吧,我用这个来解决它:

    private static final int REAUTHENTICATE = 80;

    private boolean authenticated;

    @Override
    public void onRestart() {
        if(authenticated)
            return;

        Intent intent = new Intent(this, LoginActivity.class);
        intent.setAction(LoginActivity.REAUTHENTICATE);
        startActivityForResult(intent, REAUTHENTICATE);
    }

    @Override
    public void onStop() {
        authenticated = false;
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode == REAUTHENTICATE)
            authenticated = true;
    }

好吧,这不是我所期望的,但有效,我希望有人找到更好的解决方案。导致 onRestart 在 onActivityResult 之后不断被调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重新启动时重新进行身份验证 - Android 的相关文章

随机推荐

  • 使用 Crossfade 的 MotionLayout - altSrc 出现在 src 之上(原始图像不会消失)

    我正在使用 ImageFilterView 与 MotionScene 配合 在用户滑动时在图像之间切换 我还将图像向上移动 新图像确实出现 但旧图像仍然存在 我可以看到altSrc图像位于原始图像之上 难道我做错了什么 我的预期是否错误
  • 绑定到接口类型属性

    我刚刚遇到了 WPF 中的另一个奇怪的绑定问题 考虑下面的类及其IStupid称为类型化属性MyStupid public struct DumbClass public IStupid MyStupid get return new Is
  • 使用 Otto 时订阅者不会被解雇

    我正在 Android 上尝试 Otto 并尝试将消息从我的 Fragment 发送回 Activity 这是我的代码的基础知识 我的巴士提供商 public final class BusProvider private static f
  • 与之前的渲染相比,渲染了更多的钩子。使用 React Hooks 发布表单数据时

    今天遇到了hooks的问题 我知道有一个类似的帖子 并且我阅读了使用钩子的规则 现在 当我发布表格时 它给了我这个错误 我知道那是因为我的钩子位于 if 语句内 但我怎样才能把它弄出来呢 如果这个钩子不在函数或语句中 我不知道如何使用它 任
  • Laravel Validator 由于数组到字符串转换而失败

    我正在尝试验证此输入 values id gt input id i template id gt input template id i schedulable id gt id schedulable type gt type orde
  • 如何在cakephp中编写内容类型?

    我如何在 cakephp 中编写 Content Type text xml 以及我必须在哪个文件中包含该文件 请帮忙 Thanks Cake 的方法是使用RequestHandlerComponent respondAs http boo
  • 如何验证 ASP.NET Core DI 中所有注册的类型?

    我想检查我在中建立的类型注册Startup cs全部在运行时有效 无论是在启动服务时还是作为测试套件的一部分 有一个像这样的功能 https jasperfx github io lamar documentation ioc diagno
  • 如何使用标准 Python 类(不使用外部库)获取图像大小?

    我正在使用Python 2 5 我想使用 Python 中的标准类来确定文件的图像大小 我听说PIL https en wikipedia org wiki Python Imaging Library Python 图像库 但需要安装才能
  • 为什么我无法获取 org.h2.Driver?我用maven

    我遇到连接 H2 的问题 这是我的 pom xml
  • 如何删除kafka消费者组(通过新消费者api创建)?

    我通过新的消费者 API 创建了 kafka 消费者我使用的是卡夫卡2 10 0 9 0 1我们有 1 个消费者组 每组有 1 个消费者实例 Kafka 脚本 kafka consumer groups sh 提供了删除用户的方法 但仅适用
  • NoneType 位于哪里?

    在Python 3中 我想检查是否value是字符串或None 一种方法是 assert type value in str NoneType 但在哪里NoneType位于Python 中 无需任何导入 使用NoneType产生NameEr
  • 将声明和实施压缩为 HPP 文件

    我读过一些关于在 C 中保留标头的必要性 适用性 实用性的文章 但我似乎找不到任何可靠的理由为什么 何时应该或不应该执行上述操作 我知道 boost 使用 hpp 文件向最终用户提供模板函数 而不需要关联的 cpp 文件 并且这种想法部分源
  • Android 的 setDrawingCacheEnabled() 是如何工作的?

    我有一个 UI 其中根布局是relativelayout 它有许多视图 例如字段 按钮等 还有另外两个面板最初是不可见的 当用户单击按钮时 其中一个面板从左侧滑入 另一个从底部滑入 问题是 Nexus S 的帧速率很低 我想使用 setDr
  • 如何在 Python 中打印“漂亮”的字符串输出

    我有一个字典列表 其中包含来自 sql 查询的字段 classid dept coursenum area 和 title 我想以人类可读的格式输出这些值 我正在考虑在每列顶部添加一个列标题 然后在每列中添加适当的输出 即 CLASSID
  • 当 HTML 中请求时,使用 PHP 生成 JavaScript 文件

    当 HTML 程序中请求时 如何使用 PHP 生成 JavaScript 文件 我想要一个像这样的 PHP 程序 当请求某个 JavaScript 文件时 它可以在服务器上运行 示例代码 我知道那是非常假的代码 但当我不知道该怎么做时 这就
  • 在 Android Kiosk 应用程序上显示 USB 权限对话框?

    因此 我有一个使用 startLockTask 命令固定到设备的应用程序 它有几个限制 因此用户无法退出应用程序或更改设备的设置 但是 用户应该能够通过 USB 将文件从设备传输到计算机 但是当设备连接到 新 PC 时 USB 权限对话框
  • Delphi XE5 应用程序启动时出现访问冲突

    在两台计算机上没问题 在三台计算机上存在相同的异常 并且 AV 地址相同 感谢您的帮助 begin Application Hinthidepause 30000 Application Initialize Application Mai
  • 如何为你的 JavaScript 制定计划

    我接触的 Web 开发主要是前端 HTML CSS 以及一些用于简单动画的 JQuery 不过 我现在正在做一个相当大的项目 这将包括大量涉及对象调用 AJAX 调用等的 JavaScript 函数 我对功能和所有这些都有很好的掌握 但随着
  • 清除 NodeJS REPL 控制台的命令历史记录

    我使用的是 NodeJS 版本 4 2 1 我想知道完全清除 NodeJS REPL 控制台历史记录的命令 这样当按下向上或向下箭头键时它就不会显示以前执行的命令 有什么建议 答案其实很简单 在 Windows 上 我的版本是 10 转到用
  • 重新启动时重新进行身份验证 - Android

    每次调用 onRestart 时 我都需要重新验证用户凭据 通常这意味着用户已锁定和解锁屏幕或将其置于后台然后返回 所以我这样做了 Override protected void onRestart super onRestart Inte