客户端方法:
您可以使用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 方面做出响应,但您如何才能保留信息。
注意:对于同一设备中的多个用户,此实施会失败。只需稍作调整,您就可以使其适用于同一设备中的多个用户,但我认为此验证应在服务器端完成。