我是android开发的新手。我有一个用例是:
我的应用程序有广播接收器。广播接收器应该始终在后台运行,即使我的应用程序被关闭或从最近的应用程序中删除,也应该在后台运行。
这可能吗?
-
如果您有一个扩展
BroadcastReceiver
的类:您不需要在后台运行它。在AndroidManifest上声明它。它的onReceive()
方法将始终在系统发送特定广播时调用(无论您的应用程序正在运行还是关闭(。 -
如果您谈论的是
BroadcastReceiver
对象:您应该创建一个后台服务。怎样扩展Service
类。
BroadcastReceiver
(接收器(是一个Android组件,允许您注册系统或应用程序事件。事件发生后,Android运行时会通知事件的所有注册接收器。
因此BroadcastReceiver
不用于运行后台任务。
考虑一个例子,你必须调用一个web服务,完成服务后,如果应用程序在前台,你必须向用户显示一条消息。在这种情况下,您可以使用WorkManager
调用web服务,然后调用BroadcastManager来显示消息,只有当应用程序处于forground时,我们才会注册该消息。当应用程序进入后台时,请注销接收器。