我是android开发的新手。我有一个用例是:
我的应用程序具有广播接收器。该广播接收器应始终在后台运行,即使我的应用程序被关闭或从最近的应用程序中删除或从其他应用程序移除后,它也应该一直在后台运行。
这可能吗?
答案 0 :(得分:1)
如果您有一个扩展BroadcastReceiver
的类:您不需要在后台运行它。在AndroidManifest上声明它。当系统发送特定广播(无论您的应用是运行还是关闭)时,它的onReceive()
方法将始终被调用。
如果您在谈论BroadcastReceiver
对象:您应该创建一个后台服务。怎么样?扩展Service
类。
答案 1 :(得分:1)
BroadcastReceiver
(接收器)是一个Android组件,可让您注册系统或应用程序事件。事件发生后,Android运行时会通知该事件的所有已注册接收者。
因此BroadcastReceiver
不能用于运行后台任务。
请考虑一个示例,您必须调用Web服务,并且必须完成该服务才能在应用程序处于前台的情况下向用户显示消息。在这种情况下,您可以使用WorkManager
来调用Web服务,然后调用BroadcastManager以显示仅当应用程序处于前台状态时才注册的消息。当应用程序进入后台时,请取消注册接收者。