【问题标题】:Mandatory Settings Update强制设置更新
【发布时间】:2018-02-17 16:39:39
【问题描述】:

我正在制作一个 android 应用程序,其中一个设置是每个用户都需要更新密码。

所以在成功登录后,如果用户还没有更新密码,则需要在导航到任何其他屏幕之前强制更新密码。

实现这一点的最佳方法是什么?有什么想法吗?

更新:

回答后,我的意思是说我将从 Firebase 数据库中获取的设置为布尔标志。所以我的实际查询是如何表明这是获取用户更新的强制要求? (即)导航到不同的活动或显示弹出窗口并获取设置等。我需要 UI 设计理念。

最佳做法是什么?

【问题讨论】:

  • 检查密码框是否为空有什么大不了的。

标签: android settings


【解决方案1】:

不清楚这是什么意思,如果你有一个服务器端来控制这些东西,但我会尽力提供帮助。

如果您有一个服务器控制身份验证:

  • 登录时,调用服务的 API 检查是否发生。您可以将答案保存在“共享首选项”(Android Documentation) 中,这样您就不必每次都调用您的 API。

如果您只想将应用程序放在客户端:

  • 使用1 存储指示是否执行了所需操作的值,并在登录后立即进行验证。

编辑: 如果该操作是强制性的,您可以将用户发送到一个活动以更新 pin,这将在执行该操作之前发生。

【讨论】:

    【解决方案2】:

    客户端方法:

    您可以使用SharedPreferences 来保存一个值,例如一个简单的布尔值,它会通知您用户是否已经更新了密码。

    我建议您在启动器活动的onResume() 中执行检查。

    简单明了:

    public static final String PREF_FILE_NAME = "PrefFileName";
        public static final String PREF_IS_PIN_CODE_UPDATED = "PREF_IS_PIN_CODE_UPDATED";
    
        @Override
        protected void onResume() {
            super.onResume();
    
            SharedPreferences prefs = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
            Boolean isPinCodeUpdated = prefs.getBoolean(PREF_IS_PIN_CODE_UPDATED, false);
            if (isPinCodeUpdated) {
                // You can proceed
            } else {
                // Force the user to update the pin code, by prompting for instance a dialog where he can change the pin with setCancelable(false)
            }
        }
    

    在您知道您的用户已经更新了 pin 码后,您只需将首选项设置为 true。

    SharedPreferences.Editor editor = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE).edit();
        editor.putBoolean(PREF_IS_PIN_CODE_UPDATED, true);
        editor.apply();
    

    此后,每次用户打开应用程序时,它都会传入onResume() 方法,您的isPinCodeUpdated 变量将为真,应用程序应照常运行。

    根据您的问题,我假设您不希望在 UI 方面做出响应,但您如何才能保留信息。

    注意:对于同一设备中的多个用户,此实施会失败。只需稍作调整,您就可以使其适用于同一设备中的多个用户,但我认为此验证应在服务器端完成。

    【讨论】:

      猜你喜欢
      • 2021-06-06
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 2019-10-26
      • 2018-12-26
      相关资源
      最近更新 更多