【问题标题】:How to create background services for android Oreo without notifications like social networking applications Facebook, Messenger, Zalo如何在没有通知的情况下为 android Oreo 创建后台服务,如社交网络应用程序 Facebook、Messenger、Zalo
【发布时间】:2018-08-18 11:33:15
【问题描述】:

我看到一些应用程序,如 Messenger、Zalo 不需要通知,但仍然在后台运行。怎么做。我使用的设备是小米 A1(Android 8)和诺基亚 6.1(Android 8.1)。非常感谢任何解决方案指南

【问题讨论】:

    标签: android


    【解决方案1】:

    从 Android 6.0(API 级别 23)开始,Android 引入了两项延长用户电池寿命的省电功能:打盹和应用待机。当手机处于打盹模式时,这两个功能会对您的后台处理实施许多限制。您应该在以下链接中阅读有关打瞌睡和应用待机的信息

    https://developer.android.com/training/monitoring-device-state/doze-standby

    现在,关于您的用例,您希望即使在应用未运行时也能接收消息和来电。对于这个用例,Android 在 GoogleIO2016 中宣布了高优先级 FCM 消息。它们是高优先级的推送消息,它授予应用程序临时唤醒锁和网络访问权限,与设备的打盹状态或应用程序恰好处于应用程序待机状态无关。这允许应用程序对消息做出反应,并以它想要的任何方式通知用户有关即时消息或来电的信息。

    有关您的用例的更多信息,请关注以下 08:30 至 10:30 的 GoogleIO2016 视频 https://www.youtube.com/watch?v=VC2Hlb22mZM&t=505s

    并在此答案的第一个链接上阅读有关此用例的信息。

    【讨论】:

    • 是的。我正在为我的项目使用 FCM,而不是运行服务后台
    • 如果这解决了您的问题,您应该将答案标记为已接受,这样就不会浪费其他可能正在搜索相同问题答案的开发人员的时间。
    • 我只是想知道其他应用程序(Zalo、FB、MSG)是否使用 FCM 或其他方式
    【解决方案2】:

    您可以使用 Service 类。

    请参考我在上面找到的这个链接:How to make an android app to always run in background?

    如果我有任何错误,请纠正我! 希望对你有帮助。

    【讨论】:

      【解决方案3】:

      不,当应用程序不在前台时,如果不显示前台通知 API >= Oreo,您将无法启动服务以在后台工作。我建议您使用 WorkManager,这是一个方便的后台任务库,无需前台通知。在那里查看:Work manager

      【讨论】:

        【解决方案4】:

        没有。对于 Oreo 的 API 级别(即:26)或更高级别,当应用程序不在前台而不显示前台通知时,您无法启动服务以在后台工作。一种替代方法是使用 WorkManager,这是一个方便的后台任务库,不需要前台通知。在这里查看:WorkManager

        不过,WorkManager 的警告是,它不允许您更频繁地执行任务,而不是每 15 分钟一次。因此,如果您需要每隔 30 秒、5 分钟等运行一些后台任务,则需要探索其他选项。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-28
          • 2013-09-26
          • 1970-01-01
          相关资源
          最近更新 更多