gpt4 book ai didi

android - 如何在 android 中将数据存储在 sharedpreferences 中 23 小时?

转载 作者:行者123 更新时间:2023-11-29 17:22:51 25 4
gpt4 key购买 nike

解释: 在我的应用程序中, token 将每 24 小时更改一次。所以,我想在 sharedpreferences 中将旧数据存储 23 小时,好的,我做到了。现在,如果超过 23 小时,我的新身份验证 token 将替换我在 sharedpreference 中的新数据。这意味着我的 token 将在接下来的 23 小时内有效。

如何查看自第一次身份验证时间起已过去 23 小时?

这是我获取 token 并保存到 sharedpreference 的代码

 private void Authentication_App_Service(String responseStr) {
int hours=0;
int minutes=0;
try {
Calendar c = Calendar.getInstance();

hours = c.get(Calendar.HOUR_OF_DAY);
Log.e("HOUR OF DAY",""+hours);
minutes = c.get(Calendar.MINUTE);
}
catch (Exception e){
e.printStackTrace();
}

try {
JSONObject jobj_res = new JSONObject(responseStr);

String status = jobj_res.getString("status");
String status_code = jobj_res.getString("status_code");
statusCode = Integer.parseInt(status_code);

if (status.equals("True") || status.equals("true")) {

JSONObject a_res = jobj_res.getJSONObject("auth");
main_public_access_token = a_res.getString("access_token");
SharedPreferences sharedTimer=this.getSharedPreferences("SaveTime",Context.MODE_PRIVATE);
SharedPreferences.Editor editor=sharedTimer.edit();
editor.putString("accessToken", main_public_access_token);
editor.putInt("authentication_time", hours);
editor.commit();

} else {
dialog_popup();
}

} catch (JSONException e) {
e.printStackTrace();
}
Log.e("checking value >> ", ""+ main_public_access_token);
if(main_public_access_token.equals("")){
dialog_popup();
} else {
Intent i = new Intent(getBaseContext(),
MainActivity.class);
i.putExtra(key_access_token, main_public_access_token);
startActivity(i);
finish();
}
}

以上方法每23小时运行一次,23小时前不再调用此方法。

我在 23 小时前使用了来自 sharedpreference 的 token 。请帮我解决这个问题。

最佳答案

为此使用 AlarmManager。将其设置为每 23 小时重复一次。使用以下代码

   //Create a new PendingIntent and add it to the AlarmManager
Intent intent = new Intent(this, RingAlarm.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,
12345, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am =
(AlarmManager)getSystemService(Activity.ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
23 * 60 * 60 * 1000,pendingIntent);

以上编写的代码将在每 23 小时后触发一个 Intent 。如果您需要更多解释,请告诉我。如果有帮助,请将其标记。

关于android - 如何在 android 中将数据存储在 sharedpreferences 中 23 小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35980265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com