【发布时间】:2021-12-31 19:03:51
【问题描述】:
我正在开发一个警报 java 应用程序。
我想在系统时钟到达targetTime 时运行Alarm(); 函数。
但即使应用程序未打开,我也想做这些。
所以我想以某种方式在androids后台运行它。
我的代码:
void AlarmCheck (DateTimeAlarm currentTime, DateTimeAlarm targetTime)
{
if(!targetTime.alarmed && currentTime.day == targetTime &&
currentTime.hour == targetTime.hour && currentTime.minute >= targetTime.minute)
{
targetTime.alarmed = true;
Alarm();
}
}
这是DateTimeAlarm 的类:
public class DateTimeAlarm
{
public int day;
public int hour;
public int minute;
public bool alarmed = false;
public DateTimeAlarm(int day, int hour, int minute)
{
this.day = day;
this.hour = hour;
this.minute= minute;
}
}
我不知道把这段代码放在哪里请帮助我。
我是java新手,所以请简单解释一下。感谢您的任何建议。
【问题讨论】:
-
简短的回答是你不能,虽然你可以阅读
alarmManager来设置警报developer.android.com/reference/android/app/AlarmManager,但不能保证它会准时触发,或者根本不会触发.doze mode会杀死你的应用程序和许多其他不会让你的应用程序触发警报的事情。
标签: java android multithreading