Android服务保持活力

Cat*_*lin 6 service android

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

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

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

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

谢谢你.

Kri*_*ski 9

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

  • 确实,使用前台服务可以解决问题.但是像怎么了up或yahoo messenger的应用程序不使用前台服务,我从未在状态栏上看到过通知.那么这个应用程序如何工作 谢谢 (3认同)
  • 它们最终会死掉,或者使用警报管理器重新启动它们,或者使用云连接设备使者,再重复一遍,您的服务将在足够长的时间后被杀死,您无能为力,没有特殊标志,也没有,这就是方法Android作品 (2认同)
  • 通常这被认为是非常差的编程.您应该让用户决定您的应用使用了多少.如果用户与服务进行交互(做某些事情会导致它被唤醒),那么无论如何你都会被带到堆栈顶部并且你基本上"重启".此外,您不太可能在"5到10分钟"内死亡,可能更像是5到10*小时*.对于正确的目的,AlarmManager"没问题",但请确保*让用户决定退出该应用程序.正如我所说,对此的"正确"解决方案是云到设备的消息传递. (2认同)