Android服务保持活力

时间:2012-08-18 19:24:53

标签: android service

我有一个小聊天应用程序。它启动时绑定到服务。此服务与服务器具有tcp / ip连接。

当应用程序不在前台时,我的服务会创建状态通知。到目前为止一切都很好。

当应用程序被破坏时,例如使用“onDestroy”方法上的任务管理器,我调用unbind。现在服务被杀了。 所以我的问题是,即使没有客户端与它绑定,我如何提供服务以保持活力。

Googe doc:“只要建立连接,服务就会继续运行(无论客户端是否保留对服务的IBinder的引用)。”

感谢你。

3 个答案:

答案 0 :(得分:8)

您可以将服务设为前台服务,该服务将在通知栏中显示一个图标,以便用户可以看到您的服务正在运行。否则,您无法保持您的服务正常运行。顺便说一句,您应该知道永久性服务是Android反模式,系统应该能够在内存不足时杀死您的应用程序,并且应用程序暂时没有使用它。如果您正在做一些合法需要“永远”生活的事情,您应该使用前台服务。

答案 1 :(得分:5)

答案 2 :(得分:2)

如果您希望即使销毁活页夹活动也能保持服务活动,您可以先在Activity中启动服务,然后调用bindService:

startService(serviceIntent);

bindService(serviceIntent, connection, Context.BIND_AUTO_CREATE);