How to keep a Service with listeners alive after unbind in Android?

北慕城南 提交于 2019-12-22 04:14:13

问题


I'm currently build an chat app using XMPP. I've created a service to handle the connection and incoming messages, adding the different listeners needed.

The problem is, however, whenever the activity calls unbind on the service (e.g. when the activity is paused or stopped when the user puts the app in the background) the service gets destroyed, even though it has listeners inside it (such as a chat listener, message listener, etc..)

How can I keep my service alive to be able to receive messages when the app is in the background? I read that using a foreground service is quite frowned upon, so I'd rather avoid that if possible.


回答1:


I actually had this when developing my app recently.

The trick is to start the Service on its own and then bind to it using the Intent. When you unbind from it, the Service will still continue running.

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


来源:https://stackoverflow.com/questions/22895872/how-to-keep-a-service-with-listeners-alive-after-unbind-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!