【问题标题】:Keep service running in background without showing notification保持服务在后台运行而不显示通知
【发布时间】:2023-03-23 15:08:01
【问题描述】:

我正在开发一个消息传递应用程序,我需要我的服务在后台继续运行,即使应用程序已关闭但导航栏中没有显示通知,并在手机启动时启动并在手机关闭时自行重启原因,我知道以前有人问过这个问题,但我找不到任何办法,我只是希望它像 whatsapp 或 facebook 或 bbm 服务一样,提前谢谢。

【问题讨论】:

    标签: android service android-service background-service


    【解决方案1】:

    我需要我的服务在后台继续运行,即使应用程序已关闭但没有在导航栏中显示通知,并在手机启动时启动并在手机因任何原因关闭时自行重启

    这在严格意义上是不可能的。

    欢迎您从服务的onStartCommand() 方法返回START_STICKYSTART_REDELIVER_INTENT。由于老旧和内存不足,Android 仍会不时终止您的进程,但 Android 最终会重新启动这些服务。您的进程将运行的时间百分比取决于多种因素,其中最重要的是 Android 设备有多少系统 RAM。

    更好的是,欢迎您使用 Google Cloud Messaging (GCM) 将消息传递到您的应用。这样,您就不需要一直运行的服务。当消息到达时,您的应用可以控制,为该消息做一些工作,然后离开。

    我只是希望它像 whatsapp 或 facebook 或 bbm 服务

    BlackBerry Messenger 使用 startForeground()has an icon in the status bar as a result

    【讨论】:

    • 我的应用程序是即时消息应用程序,我需要在后台运行此服务,因为它处理很多事情,而不仅仅是用户收到的消息,而且我不希望对消息数量有任何限制我听说 GCM 每天只发送 1000 个请求,我也知道 bbm 使用前台通知,但它也可以在应用程序的设置中使其消失
    • @KareemEssamGaber:“我听说 GCM 每天只发送 1000 个请求”——这是不正确的。 “它处理很多事情,而不仅仅是用户收到的消息”——欢迎你相信你想要的。如果即时消息应用程序使用 GCM 处理入站消息,我想不出有什么理由让即时消息应用程序持续运行服务。
    • 感谢帮助,但我不知道如何使用 GCM 我尝试阅读 google 的文档和许多关于如何编程我的服务器以使用 GCM 发送、接收和处理请求的教程,但我仍然不知道不知道怎么做,你有什么建议给大佬们一个简单高效的教程吗?
    • @KareemEssamGaber:我最近没有找 GCM 教程。
    猜你喜欢
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多