当前位置: 首页 > 知识库问答 >
问题:

即使后台进程手动停止,android聊天应用程序(Watsapp、Hangouts、Facebook Messenger等)如何接收消息?

魏宸
2023-03-14

我试图实现一个Android聊天应用程序使用web套接字。我使用Android服务连接到Web套接字服务器。它工作正常,但当我强制停止服务(不是应用程序)手动在任务管理器

(设置-

然后我的应用程序不会从服务器接收任何消息。我从其他聊天应用程序中观察到,即使我停止了这些应用程序的后台服务,它们也会收到消息,一段时间后,这些服务也会自动启动。怎么可能呢?是否有其他唤醒主应用程序线程的隐藏服务?

共有3个答案

许黎明
2023-03-14

据我所知,他们没有一个特殊的方式来做这件事。他们可能有方便的“变通办法”(例如,Facebook Messenger可以唤醒FB应用程序,如果你已经安装并只停止其中一个)。

从Android3.1开始,应用程序不能唤醒自己,GCM也不会唤醒它。请参阅此处:Android 3.1上的GCM推送通知:禁用广播接收器

普通人通常知道他在说什么。此外,我已经测试了它,它不适合我的3.1 API。

董弘新
2023-03-14

大多数应用程序都使用推送服务,比如谷歌云消息。

连续轮询服务器或维护持久Web套接字不是在较长时间内从服务器接收消息的资源友好型方法。

马魁
2023-03-14

您可以在每次强制停止服务时强制启动该服务

看看这个(即使用户强制关闭服务,如何自动重启服务?)

 类似资料:
  • 我正在构建一个应用程序,即使应用程序在后台,也需要保持位置跟踪。基本上,我正在使用播放服务的GoogleApiClient和LocationServices。FusedLocationApi.request位置更新方法来调用IntentService。 下面的代码是我如何在活动的后台触发位置更新: 效果很好 但是,当用户(通过任务管理器)终止应用程序时,我想停止此IntentService(称为L

  • 我在我的工作区中使用STS IDE运行了几个Spring Boot应用程序,在我对其中一个项目进行maven更新后,每个项目都在应用程序启动过程后立即停止。我甚至创建了一个最小的例子,只是为了开始一些事情,同样的事情发生了。 这是我的pom.xml 即使是那些入门示例也会在启动后立即停止。我会非常感谢这里的一些帮助。 编辑:正如Alexandru Marina在评论中所说,我使用的是快照而不是稳定

  • 我编写了一个使用嵌入式tomcat作为容器的Spring Boot webservice。 如果系统重新启动,我想备份一些信息到一个mysql数据库。 在我的webservice中,我使用和来运行备份。 当我用^C停止服务器时,这就很好了。 但当我使用sysV skript()和kill命令终止进程时--即使守护进程依赖于mysql,mysql服务器也会在备份完成之前关闭(导致我的日志中出现SQL

  • 问题内容: 我有一个媒体播放器服务,可在整个应用程序的后台播放音乐,例如: 问题在于,当用户更改应用程序或进入手机主屏幕(应用程序在后台运行)时,音乐仍在播放。 我试图停止它和方法,但是当我更改活动时这会停止音乐,这是我不希望的(我希望音乐在用户浏览活动时继续播放)。 更新资料 我尝试了广播: 我加了 在音乐服务的onCreate和接收事件的方法中: 在应用程序类中,我这样做: 但是音乐不会恢复

  • 我正在开发Android聊天应用程序,一切都很顺利。我已经设法将用户添加到解析数据库中,并在friends片段上显示用户。 但后来辛奇来了。我按照他们网站上的指示将SDK添加到我的项目中,并添加了一个服务类,我已经在清单中声明了如下内容: 在应用程序标记的内部。 java.lang.UnsatisfiedLinkError:Dalvik.System.PathClassLoader[dexPath