android - 在 Android 中解除绑定(bind)后,如何让服务与听众保持联系?

标签 android service chat

我目前正在使用 XMPP 构建一个聊天应用程序。我创建了一个服务来处理连接和传入消息,添加所需的不同监听器。

然而,问题是,每当 Activity 在服务上调用解除绑定(bind)时(例如,当 Activity 暂停或停止时,当用户将应用程序置于后台时)服务就会被销毁,即使它内部有监听器(例如作为聊天监听器、消息监听器等。)

当应用程序在后台运行时,我如何才能让我的服务保持 Activity 状态以便能够接收消息?我读到使用前台服务是非常不受欢迎的,所以我宁愿尽可能避免使用。

最佳答案

我最近在开发我的应用程序时实际上遇到过这个问题。

诀窍是自行启动Service,然后使用Intent 绑定(bind)到它。当您解除绑定(bind)时,Service 仍将继续运行。

Intent i = new Intent(this, DataService.class);
startService(i); 
bindService(i, this, Context.BIND_AUTO_CREATE);

关于android - 在 Android 中解除绑定(bind)后,如何让服务与听众保持联系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22895872/

相关文章:

android - 为什么 AndroidX 需要将 compileSdkVersion 设置为 28 或更高

Android:如何在向服务器发送多个图像时在 gridview 中的每个 ImageView 上显示进度条

mysql - ejabberd:从 mysql 数据库中检索聊天记录

android - RadioGroup checkedButton 属性

android - 是否可以在启动相机等外部 Intent 时设置 pendingtransition

c# - 什么在 .Net Core 中取代了 WCF?

windows - 使用Golang在Windows的端口上启动服务器可执行文件

grails - 如果我想在 Grails 中拥有自己的插件架构怎么办?

android - 从 XMPP android 获取不同的发件人和接收地址,任何解决方案?

react-native - Twilio 可编程聊天消息用户友好名称