Java 如何在alarmmanager警报触发时运行代码

Java 如何在alarmmanager警报触发时运行代码,java,android,xamarin,push-notification,xamarin.android,Java,Android,Xamarin,Push Notification,Xamarin.android,我正在试图弄清楚当alarmmanager警报触发时如何运行一些代码。我目前可以安排警报,现在我在警报触发时发送广播,我有一个广播接收器来接收它。问题是,当用户通过从最近的应用程序中刷出应用程序来关闭应用程序时,我的广播接收器会停止,因此即使广播被发送,也没有接收器来接收它。如何直接从警报中运行代码 下面是我现在用来在特定时间创建通知的代码: 创建报警: alarmManager.SetExactAndAllowWhileIdle(AlarmType.ElapsedRealtimeWakeup

我正在试图弄清楚当alarmmanager警报触发时如何运行一些代码。我目前可以安排警报,现在我在警报触发时发送广播,我有一个广播接收器来接收它。问题是,当用户通过从最近的应用程序中刷出应用程序来关闭应用程序时,我的广播接收器会停止,因此即使广播被发送,也没有接收器来接收它。如何直接从警报中运行代码

下面是我现在用来在特定时间创建通知的代码:

创建报警:

 alarmManager.SetExactAndAllowWhileIdle(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + ((long)(App.checkInTimes[i].TimeOfDay.TotalSeconds - DateTime.Now.TimeOfDay.TotalSeconds) * 1000), PendingIntent.GetBroadcast(Android.App.Application.Context, 0, new Intent("android.intent.action.CREATE_CHECKIN_NOTIFICATION"), PendingIntentFlags.UpdateCurrent));
以及广播接收器,以创建通知:

[IntentFilter(new[] { "android.intent.action.CREATE_CHECKIN_NOTIFICATION" })]
public class NotificationReceiver : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent)
    {
        //Send Check In Notification
        //Setup notification
        Notification.Builder builder = new Notification.Builder(Android.App.Application.Context);
        builder.SetContentTitle("Please Check In Now");
        builder.SetContentText("Tap here to check in");
        builder.SetSmallIcon(Resource.Drawable.exclamationPoint);
        builder.SetPriority(2);
        long[] pattern = { 1000, 1000, 1000, 1000 };
        builder.SetVibrate(pattern);
        builder.SetLights(Android.Graphics.Color.Red, 1500, 1500);
        Intent launchIntent = new Intent(Android.App.Application.Context, typeof(CheckInScreen));
        PendingIntent pendingIntent = PendingIntent.GetActivity(Android.App.Application.Context, 1, launchIntent, PendingIntentFlags.UpdateCurrent);
        builder.SetContentIntent(pendingIntent);

        //Build notification
        Notification notification = builder.Build();
        notification.Flags = NotificationFlags.AutoCancel;

        //Get Notification Manager
        NotificationManager notificationManager = Android.App.Application.Context.GetSystemService(Context.NotificationService) as NotificationManager;
        //Publish Notification
        notificationManager.Notify(0, notification);}
发件人:

问题是您的BroadcastReceiver没有[BroadcastReceiver]属性

看看你的代码,这正是问题所在。您缺少所述属性

尝试添加

[BroadcastReceiver]
在你的类定义之前