android - 警报管理器:每次打开活动时忽略警报参数并运行方法
问题描述
我正忙于一个每日报价应用程序...警报管理器设置为在 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{
解决方案
推荐阅读
- swift - 如何在使用大标题时更改导航栏的背景颜色
- video - ffmpeg: Concatenating videos with different formats with as little quality loss as possible
- ruby-on-rails - Rails - 使用 signature_pad js / toDataUrl 画布方法将图像保存到活动存储
- java - 如何使用缩略图位置
- ios - 集成 UIKit 和 Swift UI 时如何创建自定义 updateUIViewController 行为?
- python - makeAdmin 谷歌 API Gsuite SDK 错误
- javascript - 我想在java中将我的ed25519密钥对转换为curve25519(类似于js中的ed2curve)
- parsing - 如何在 rust 中获取原始 URL 路径?
- python - 尝试使用训练数据时出现奇怪的错误
- ios - 无法运行 build/ios/iphoneos/Runner.app 尝试启动 Xcode 并选择“产品 > 运行”来解决问题