データベースに時間が保存されている場合、12時間ごとに通知を表示するAndroidアプリを開発しています。そのため、データベースにデータを入力または編集するたびに、現在のアラームマネージャーをキャンセルし、新しいアラームマネージャーを開始して、見逃さないようにします。また、再起動時に、alarmmanagerを呼び出しました。ブロードキャストレシーバーでは、データベースのエントリがチェックされ、見つかった場合は通知が設定され、アプリが自動的に開かれます。
そのため、日付を手動で変更してアプリをテストすると、アプリは期待どおりに機能します。再起動してもアプリは機能します。ただし、アプリを14時間近くアイドル状態にしておくと、通知は設定されませんが、アプリを開いてその後、通知が設定されるように一時停止します。
これが私がalarmmanagerと呼ぶ方法です。インテントalarmintent=new Intent(context、package.Alarm_Manager.class);
    alarmintent.putExtra("note","Notify");
    sender = PendingIntent.getBroadcast(context , 0 , alarmintent , PendingIntent.FLAG_CANCEL_CURRENT | Intent.FILL_IN_DATA);            
    alarm_manger = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    alarm_manger.cancel(sender);
    Calendar cal = Calendar.getInstance();
    long now = cal.getTimeInMillis();
    alarmintent = new Intent(context, package.Alarm_Manager.class);
    alarmintent.putExtra("note","Notification");
    sender = PendingIntent.getBroadcast(context , 0 , alarmintent , PendingIntent.FLAG_CANCEL_CURRENT | Intent.FILL_IN_DATA);            
    alarm_manger = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    alarm_manger.setRepeating(AlarmManager.RTC_WAKEUP, now, AlarmManager.INTERVAL_HALF_DAY, sender);
これは放送受信機です
@Override
public void onReceive(Context context, Intent intent)
{
       NotificationManager manger = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
       Calendar cal = Calendar.getInstance();
       date = (int)(cal.getTimeInMillis()/1000);
       Notification notification = new Notification(R.drawable.vlcsnap_396460 , "Notify" , System.currentTimeMillis());
       PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, 0);
       notification.setLatestEventInfo(context, "App", "Notify" , contentIntent);
       notification.flags = Notification.FLAG_INSISTENT;
       manger.notify( 0 , notification);
   }