【发布时间】:2018-04-02 04:48:00
【问题描述】:
在我的应用程序中,我显示Notification 以及我的应用程序的上次打开日期。
这是我获取上次打开时间的代码,
long time = 0;
if (MainPageActivity.SettingsInfo != null)
time = System.currentTimeMillis() - MainPageActivity.SettingsInfo.getLong("LASTOPEN", 0);
并获得差异,
String getTime(long ms)
{
final int SECOND = 1000;
final int MINUTE = 60 * SECOND;
final int HOUR = 60 * MINUTE;
final int DAY = 24 * HOUR;
String text;
if (ms > DAY) {
text=(ms / DAY)+(" Day(s) ago");
}
else
text=(ms / HOUR)+(" Hour(s) ago");
return text;
}
它工作正常。但有时它会显示 0 小时前或一些不相关的日子,例如 1250 天前。
我确定 SettingsInfo 不为空,并且在此代码运行时具有上次打开的信息。
我在上面的代码中使用alarm。 notification 会在超过 3 天时每天显示。
SettingsInfo.edit().putLong("LASTOPEN", System.currentTimeMillis()).apply();
谁能解决这个问题?帮帮我!
【问题讨论】:
-
不知道为什么你会得到那些
1250 day(s) ago,但不是你当前的计算使用DateUtils#getRelativeTimeSpanString()方法之一 -
我会试试的..谢谢