应用程序启动时的日期更改检测-Android

use*_*965 1 android date alarmmanager android-intent

我是Android编程的新手,并且可能会在此论坛上几秒钟内解决挑战。

我试图弄清楚如何在启动期间启用应用程序,以检测自上次启动以来日期是否已更改。

日期更改后,我打算更改textview中的值。但是,如果没有,textview将不会更改。-我知道如何创建此功能,但是卡在日期更改问题上?

我已经阅读了alarmmanager,但是不确定这是否是必需的,因为它不需要仅在启动期间的特定时间发生。

任何建议将不胜感激。

谢谢,

ps我正在创建一个基本的报价应用程序,并希望包括当天页面的报价。为此,我需要知道日期是否已更改,以便应用程序更改报价。

Jav*_*ave 5

您需要的是:
一个SharedPreference带有长值的A ,描述最后一个日期。
Calendar

当您的Activity开始时(在onCreate()Method中,这似乎是个不错的选择),您可以获得一个new Calendar。它将具有当前日期,您可以提取日期:

Calendar c = Calendar.getInstance();
int thisDay = c.get(Calendar.DAY_OF_YEAR); //You can chose something else to compare too, such as DATE..
long todayMillis = c.getTimeInMillis(); //We might need this a bit later.
Run Code Online (Sandbox Code Playgroud)

然后,您从上次读取可能保存的值,并将日历设置为此值,然后将其与今天进行比较:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
long last = prefs.getLong("date", 0); //If we don't have a saved value, use 0.
c.setTimeInMillis(last);
int lastDay = c.get(Calendar.DAY_OF_YEAR);

if( last==0 || lastDay != thisDay ){
    //New day, update TextView and preference:
    SharedPreferences.Editor edit = prefs.edit();
    edit.putLong("date", todayMillis);
    edit.commit();
}
Run Code Online (Sandbox Code Playgroud)