Android xamarin 在特定日期和月份的本地通知

Android xamarin local notification in specific day and month

一段时间以来,他一直在尝试在应用程序中设置指定日期和月份的通知。不幸的是,每天调用它几秒钟后就会出现通知。

这是我的代码:

private void Remind_Click(object sender, System.EventArgs e)
    {
        string title = "If you see this";
        string message = "it means it works";

        Intent alarmIntent = new Intent(Application.Context, typeof(AlarmReceiver));
        alarmIntent.PutExtra("message", message);
        alarmIntent.PutExtra("title", title);

        var pendingIntent = PendingIntent.GetBroadcast(this, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);
        var alarmManager = GetSystemService(AlarmService).JavaCast<AlarmManager>();

        DateTime nowDate = DateTime.Now;
        int month = 09;
        int day = 24;
        DateTime newDate = new DateTime(nowDate.Year, month, day);                   

        DateTime date = newDate;
        var ms = (long)(date - new DateTime(1970, 1, 1)).TotalMilliseconds;
        alarmManager.SetInexactRepeating(AlarmType.RtcWakeup, 3600000, ms, pendingIntent);

        ShowSnack(main, $"Set date: {date} ");
    }

请帮我解决这个问题。

  1. 对于setInexactRepeating (int type, long startTime, long intervalTime, PendingIntent pi);第二个参数是开始执行的时间,第三个参数是两次执行的间隔时间。所以你的参数输入有误
  2. 如果只触发一次事件,可以使用set(int type, long startTime, PendingIntent pi);使用此方法只会触发一次事件。

注意:因为你使用的是AlarmType.RtcWakeup。 DateTime.Now的时间可能和Utc时间不一样(可以用DateTime.Now和DateTime.UtcNow看两者有没有时间差)。