【问题标题】:Broadcast receiver should always keep on running in background even my app is closed即使我的应用程序关闭,广播接收器也应始终在后台运行
【发布时间】:2019-11-05 18:05:53
【问题描述】:

我是安卓开发新手。我有一个用例是:

我的应用程序有广播接收器。该广播接收器应始终在后台继续运行,即使我的应用被关闭或从最近的应用中删除或其他任何可能的应用 - 它应该在后台运行。

这可能吗?

【问题讨论】:

  • 你试过报警管理器吗?
  • 有多种方式可以在后台运行,具体取决于您的实际用例。您的问题并不具体(您实际上在后台尝试做什么?),因此很难向您推荐解决方案。我建议阅读this guide,或编辑您的问题以更具体地了解您想要实现的目标。或两者兼而有之:)

标签: android


【解决方案1】:
  1. 如果你有一个扩展 BroadcastReceiver 的类:你不需要在后台运行它。在 AndroidManifest 上声明它。它的onReceive() 方法总是会在系统发送特定广播时被调用(无论你的应用是在运行还是关闭)。

  2. 如果您谈论的是BroadcastReceiver 对象:您应该创建一个后台服务。如何?扩展Service 类。

【讨论】:

    【解决方案2】:

    BroadcastReceiver(接收器)是一个 Android 组件,它允许您注册系统或应用程序事件。一旦该事件发生,Android 运行时会通知所有已注册的事件接收者。

    所以BroadcastReceiver 不适合运行后台任务。

    考虑一个示例,您必须调用 Web 服务并完成服务,如果应用程序在前台,您必须向用户显示消息。在这种情况下,您可以使用 WorkManager 调用 Web 服务并然后调用 BroadcastManager 以显示我们仅在应用程序处于前台时注册的消息。当应用程序进入后台时,取消注册接收器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多