Java 每当应用程序打开时,重新启动AlarmManager

Java 每当应用程序打开时,重新启动AlarmManager,java,android,alarmmanager,Java,Android,Alarmmanager,我正在呼叫后台服务的报警管理器。它在特定时间工作,就像我将其设置为11:44触发一样,它将触发,但问题是每当我打开应用程序时,报警管理器再次开始执行该功能 public class BackgroundService extends Service { private static final String TAG = "BackgroundService"; public BackgroundService() { } @Override public IBinder onBind(Int

我正在呼叫后台服务的报警管理器。它在特定时间工作,就像我将其设置为11:44触发一样,它将触发,但问题是每当我打开应用程序时,报警管理器再次开始执行该功能

public class BackgroundService extends Service {

private static final String TAG = "BackgroundService";
public BackgroundService() {
}

@Override
public IBinder onBind(Intent intent) {
    // TODO: Return the communication channel to the service.
    throw new UnsupportedOperationException("Not yet implemented");
}



@Override
public int onStartCommand(Intent intent, int flags, int startId) {

   // siteInAutomate();

    Log.e(TAG, "Background Activity");

    AlarmManager alarmMgr1 = 
   (AlarmManager)getSystemService(Context.ALARM_SERVICE);

    Intent intent1 = new Intent(this,schedule1.class);
    PendingIntent pendingIntent1 = PendingIntent.getBroadcast(this, 
    0,intent1, 0);

    // Intent intent0 = new Intent(this, OldEntryRemover.class);
    Log.e(TAG, "SiteOutCalled");
    Calendar calendar1 = Calendar.getInstance();
    calendar1.setTimeInMillis(System.currentTimeMillis());
    calendar1.set(Calendar.HOUR_OF_DAY,10 );
    calendar1.set(Calendar.MINUTE, 52);
    calendar1.set(Calendar.SECOND, 0);

    //set that timer as a RTC Wakeup to alarm manager object
    alarmMgr1.set(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), 
    pendingIntent1);

    return super.onStartCommand(intent, flags, startId);
    }

在这里,您已将闹钟设置为10:52。因此,如果在此之后打开应用程序,它会立即重新创建并触发AlarmManager

如果规定的触发时间已过,则会立即触发报警

您可以查看当前时间。如果超过了计划时间,则在
日历
(此处为日历1)的实例中,添加一天

calendar1.add(Calendar.DATE,1)