无法使用广播接收器显示通知 Android

Cannot show notifications with Broadcast Receiver Android

我想在我的应用程序上单击按钮时显示提醒(通知和警报)。我创建了一个 BroadcastReceiver 来创建通知。当我单击片段中的按钮时调用它。

这是我到目前为止所做的:-

public class AlarmReceiver : BroadcastReceiver
    {
        private int resourceId;
        public override void OnReceive(Context context, Intent intent)
        {
            var message = intent.GetStringExtra("message");
            var title = intent.GetStringExtra("title");
            var mEvent = intent.GetStringExtra("event");

            var notIntent = new Intent(context, typeof(SplashActivity));
            var contentIntent = PendingIntent.GetActivity(context, 0, notIntent, PendingIntentFlags.CancelCurrent);
            var manager = NotificationManagerCompat.From(context);

            var style = new NotificationCompat.BigTextStyle();
            style.BigText(message);


            if (mEvent == "Birthday")
                resourceId = Resource.Drawable.ic_cupcake;
            else if (mEvent== "Anniversary")
                resourceId = Resource.Drawable.ic_anniversary;


            var wearableExtender = new NotificationCompat.WearableExtender().SetBackground(BitmapFactory.DecodeResource(context.Resources, resourceId));

            //Generate a notification with just short text and small icon
            var builder = new NotificationCompat.Builder(context)
                            .SetContentIntent(contentIntent)
                            .SetSmallIcon(Resource.Drawable.ic_applogo)
                            .SetContentTitle(title)
                            .SetContentText(message)
                            .SetDefaults(1)
                            .SetStyle(style)
                            .SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis())
                            .SetAutoCancel(true);


            var notification = builder.Build();
            manager.Notify(0, notification);
        }
    }

提醒片段

public static void Remind(Activity mActivity, DateTime dateTime, string title, string message, string eventType)
        {

            Intent alarmIntent = new Intent(mActivity, typeof(AlarmReceiver));
            alarmIntent.PutExtra("message", message);
            alarmIntent.PutExtra("title", title);
            alarmIntent.PutExtra("event",eventType);

            PendingIntent pendingIntent = PendingIntent.GetBroadcast(mActivity, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);
            AlarmManager alarmManager = (AlarmManager)mActivity.GetSystemService(Context.AlarmService);

            //TODO: For demo set after 5 seconds.
            alarmManager.Set(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + 5 * 1000, pendingIntent);
        }

btnRemind.Click += delegate
                {

                        var msg = "Wish " + Name + "on their " + eventType;
                    Remind(mActivity, DateTime.Now, "Reminder", msg, eventType);
                    Toast.MakeText(mActivity, "Reminder set", ToastLength.Long).Show();

                };

清单

<application android:label="Events" android:icon="@drawable/Icon">

    <receiver android:name=".AlarmReceiver" android:enabled="true">
    </receiver>
  </application>

SplashActivity 是我的启动器 activity。但是片段是从另一个名为 MainActivity 的 activity 显示的(这可能是问题所在吗?) 出于测试目的,我已启用该应用程序以在 5 秒后显示通知,但不知何故这不起作用并且通知没有显示。

感谢任何帮助

请在主 activity 启动时注册接收器并在退出时取消注册。