在xamarin中安排某个函数在特定时间后播放

kxe2p93d  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(110)

所以我想做的(如果可能的话)是在一段时间后执行一个函数,即使用户关闭了应用程序,这个函数也会向服务器发送一个mqtt消息。我听说过AlarmManager和BackgroundReciver,但我不知道这是否能发挥整个功能。有人能告诉我这是否可能吗?

zy1mlcev

zy1mlcev1#

在android中,您可以尝试使用服务来实现这一点。
从文档"Android 8.0中的后台执行限制"中,我们知道
从Android 8.0开始(API级别26),Android应用程序不再具有在后台自由运行的能力。当在前台时,应用程序可以不受限制地启动和运行服务。当应用程序移动到后台时,Android将授予应用程序一定的时间来启动和使用服务。一旦该时间过去,应用程序无法再启动任何服务,并且已启动的任何服务都将终止。此时,应用程序无法执行任何工作。如果满足以下条件之一,Android将认为应用程序处于前台:

  • 存在可见的活动(已启动或已暂停)。
  • 应用程序已启动前台服务。
  • 另一个应用程序位于前台,并且正在使用来自原本位于后台的应用程序的组件。

前台的应用程序A绑定到服务
则应用程序B也将被
在前台考虑,并且不会因为在后台而被Android终止。
在某些情况下,即使应用处于后台,Android也会唤醒应用并放松这些限制几分钟,从而允许应用执行一些工作:

  • 应用程序收到高优先级Firebase云消息。
  • 应用程序接收广播。
  • 应用程序接收并执行PendingIntent以响应通知。

您也可以参考https://robertohuertas.com/2019/06/29/android_foreground_services/

相关问题