Android 应用程序睡眠时Xamarin AlarmManager未启动
我有以下代码在准确的时间发出警报当我的应用程序进入睡眠/后台时,闹钟不会触发,但只要我解锁手机,它就会立即触发Android 应用程序睡眠时Xamarin AlarmManager未启动,android,xamarin,xamarin.android,alarmmanager,Android,Xamarin,Xamarin.android,Alarmmanager,我有以下代码在准确的时间发出警报当我的应用程序进入睡眠/后台时,闹钟不会触发,但只要我解锁手机,它就会立即触发 Intent i = new Intent(this, typeof(MyReceiver)); i.PutExtra("Speaker", txtSpeaker.Text); PendingIntent pi = PendingIntent.GetBroadcast(this, 0, i, 0); string _date = D
Intent i = new Intent(this, typeof(MyReceiver));
i.PutExtra("Speaker", txtSpeaker.Text);
PendingIntent pi = PendingIntent.GetBroadcast(this, 0, i, 0);
string _date = DateTime.Today.ToString("MM-dd-yyyy") ;
string _time = tpick.Hour + ":" + tpick.Minute;
DateTime scheduleAt = Convert.ToDateTime(_date).Add(TimeSpan.Parse(_time));
DateTimeOffset dateOffsetValue = DateTimeOffset.Parse(scheduleAt.ToString());
var millisec = dateOffsetValue.ToUnixTimeMilliseconds();
AlarmManager alarmManager = (AlarmManager)GetSystemService(AlarmService);
alarmManager.SetExact(AlarmType.RtcWakeup, millisec, pi);
这是我的接受者课程
[BroadcastReceiver]
public class MyReceiver : BroadcastReceiver
{
public async override void OnReceive(Context context, Intent intent)
{
Console.WriteLine("FIRED");
String result = intent.Extras.GetString("Speaker");
Toast.MakeText(context, "Alarm Ringing!", ToastLength.Short).Show();
}
}
如果应用程序在API 23或更高版本上运行,您可能需要考虑使用。根据文档,在我看来,此方法将忽略设备是否处于低功耗状态或是否启用了doze。如果应用程序在API 23或更高版本上运行,您可能需要考虑使用。根据文档,在我看来,此方法将忽略设备是否处于低功耗状态或是否启用了doze