我的面向Android 8.1的Xamarin C#Android程序具有锁定屏幕通知。它具有一个带有PendingIntent.GetBroadcast操作的按钮。
当我在Android 6.0手机上运行此应用程序时,当我的应用程序在屏幕上可见时,我按下按钮时,它将立即触发。
当我关闭屏幕并重新打开(但不对其进行解锁)并且我的活动已停止时,按下按钮不会在几秒钟内引起我的应用意图。 Android设备监视器显示它已获得意图,然后等待,直到它调用我的应用程序:
09:39:52.531: V/ActivityManager(949): Broadcast: Intent { act=mybutton flg=0x10000010 cmp=MyApp.Android/md564336ff3eaa53a44a463178bbe2012c2.LockScreenBroadcastReceiver bnds=[722,1028][866,1220] } ordered=false userid=0 callerApp=null
....
09:39:59.422: I/mono-stdout(17592): INFO:20181012 09:39:59.42 Create LockScreenBroadcastReceiver
在这种情况下,在我的应用程序中创建并调用BroadcastReceiver对象大约需要7秒钟。
在Android 8.1手机上运行没有延迟,但是我不确定这是否是因为手机或Android版本。
我尝试使用notificationManager.Notify以及通过具有StartForeground(id,notification)的服务来创建通知。两者的行为相同。