每天凌晨5点发出警报

我正在开发一个Android应用程序,我需要每天早上5点触发警报。 我已经使用了Intent的概念(下面是代码)并将AlarmManager放入Service 。 但我没有从两个实现中获得问题解决方案。 我只是在寻找一个完美的解决方案。 如果我第一次打开应用程序时,我会在calendar添加提醒1个月,我想这可能会有效。 但如果有更好的解决方案,请提供。 无论如何,它应该每天凌晨5点触发警报。 我怎样才能做到这一点?

 alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); Intent alarmIntent = new Intent(this, MyStartServiceReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 100, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 5); calendar.set(Calendar.MINUTE, 5); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.AM_PM, Calendar.AM); if (System.currentTimeMillis() > calendar.getTimeInMillis()) { calendar.add(Calendar.DAY_OF_MONTH, 1); } alarmManager.cancel(pendingIntent); alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); 

尝试改变以下事项

  1. 将警报类型从不inexactrepeating repeating更改为repeating
  2. 更改calendar.add(Calendar.DAY_OF_MONTH, 1);calendar.add(Calendar.DATE,1);

让我知道这个是否奏效。

您需要实施服务: https : //developer.android.com/guide/components/services.html

此外,您可能会在app中找到许多有关实现服务的教程