问一下有没有遇到过关闭程序后,service在运行但是不执行业务逻辑的问题。
并且在eclipse的device中没有此service
重新打开app后可以看到此service仍然在运行,没有异常

解决方案 »

  1.   

    Acitivity关闭后,service还是在运行的。
      

  2.   

    应该是在运行,但是在device窗口里却没有了,而且业务也没有执行
      

  3.   

    service怎么可能一直在运行,难道是一个死循环吗?应该是一直在等待中,实际运行还是要由其他程序激活的。
      

  4.   

    你的service不是继承的bindService,如果是bindService就和调用service的线程共生死了,activity关闭之后service也终止了,再打开activity如果再调用service的话又会跑起来
      

  5.   

    关闭程序前应先停掉service后再退出,还有就是在程序有可能因为某些异常导致崩溃的情况做停掉service处理。如果你的业务逻辑是放在该service处理,运行但不执行业务逻辑可能由于系统资源耗尽没法响应你的service,重新运行程序可以先检测service是否有在运行,如有跳过,没有就启动。
      

  6.   

    不是bind的是start的
    退出程序希望service仍然运行
      

  7.   

    我最终的做法是将service改成前台service
      

  8.   

    android中开启服务有两种方法,一种是在启动他的组件(如activity)中调用startService方法我们称之为启动服务,该种方法启动的服务即使启动他的应用程序已经关闭也会一直运行,除非你在调用startService的组件中调用stopService方法停止服务或者是调用服务自身的stopSelf方法停止服务或者在系统的资源急度紧张的时候系统会干掉他。通常当你在启动服务中完成工作后你应该插调用stopSelf方法结束掉他自己。另一种是绑定服务,我们通过调用其他组件(如activity)的bindService方法来绑定到一个服务,bindService与startService的区别在于当你要执行的事件完成之后bindService服务会自动帮你关闭服务。而startService则不会除非你调用stopService方法或者他自身的stopSelt方法停止服务否则他会一直运行直到天荒地老,海枯石烂。绑定服务其实有点类似于我们所说的服务器,因为他允许多个应用程序组件绑定到他,这时绑定到他的这些组件就相当于客户端,客户端通过向服务器发送一些消息来与之进行交互这是通过aidl来实现的。如果有多个组件绑定到同一个服务那么只有当这些客户端请求的操作都完成后service才会停止,当然了你也可以调用组件(如activity)的unBindService方法来解绑服务同样可以干掉他。最后在说一点,对于同一个服务你可以同时启动和绑定他具体的我就不多说了,如有疑问可以发email给我[email protected]