我正忙于每日报价应用程序...设置了警报管理器,以在MainActivity中运行一个方法,该方法每天早晨0900用数据库中的报价填充listView。该方法运行且listView填充良好但会忽略警报计划,并且填充的数据不会持续存在。
如果用户离开主要活动,然后返回,或者关闭并重新打开该应用程序,则该方法将再次运行,并且列表视图将填充新的引号,而不是持久保存并且仅按计划的时间间隔运行。
关于如何解决此问题的任何想法?
这是我的代码:
在这里,我在MainActivity的onCreate方法中动态注册警报:
mTodaysQuoteReceiverStaticInnerClass = new
TodaysQuoteReceiverInnerStaticClass();
IntentFilter filter = new
IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
filter.addAction(Intent.ACTION_BOOT_COMPLETED);
this.registerReceiver(mTodaysQuoteReceiverStaticInnerClass, filter);
这是我的接收器类(我在MainActivity中创建了一个内部类):
public class TodaysQuoteReceiverInnerStaticClass extends BroadcastReceiver{
@Override
public void onReceive(final Context context, final Intent intent){
MainActivity.this.PopulateTodaysQuote();
}
}
这是设置我的闹钟的方法。我从MainActivity中的onCreateMethod调用此方法:
public void todaysQuoteAlarm(){
long currentTime = System.currentTimeMillis();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 20);
calendar.set(Calendar.MINUTE, 9);
calendar.set(Calendar.SECOND, 0);
if (currentTime <= calendar.getTimeInMillis()) {
Intent myIntent = new Intent(this,
TodaysQuoteReceiverInnerStaticClass.class);
int ALARM1_ID = 10000;
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,
ALARM1_ID, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)
this.getSystemService(Context.ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
}
else{