6

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

当应用程序不在前台时,我的服务会创建状态通知。到现在为止还挺好。

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

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

谢谢你。

4

3 回答 3

9

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

于 2012-08-18T19:33:00.007 回答
5

读这个:

http://developer.android.com/guide/components/services.html#Foreground

于 2012-08-18T19:53:37.203 回答
2

如果你想在你的 binder Activity 被销毁的情况下保持你的服务活着,你可以先在 Activity 中启动你的服务,然后调用 bindService:

startService(serviceIntent);

bindService(serviceIntent, connection, Context.BIND_AUTO_CREATE);
于 2012-08-18T19:56:57.817 回答