关注学习一下优先级的问题。
当某个事件触发启动Service ,LZ可以自己写一个Broadcast在抓这个事件嘛

解决方案 »

  1.   

    楼主的服务不一定要不停去运行吧,电池的信息根本不需要实时更新啊,你一分钟去调用一次service,然后更新一次界面就可以了吧。
      

  2.   


    电池的状态变更事件比较特殊,必须由运行的Service注册的Reciever才能接收到android.intent.action.BATTERY_CHANGED事件,所以要保持电量始终是最新的就必须监听这个事件。我现在的解决办法是在Widget更新的时候判断服务是否在运行,没在运行就startServic()一下,以保证服务始终在跑的。
      

  3.   

    内存吃紧问题,service可以保留notification来防止被kill掉
      

  4.   

    为什么不用broadcastreceiver来捕捉intent.action.BATTERY_CHANGED?
    service有个优先级,内存或者前台进程运行时,就会把后台以及可见进程之类的kill掉
      

  5.   


    事实证明无论服务的优先级多高都是会被kill的。
    目前据我所知可以有两种解决方法:1、创建两个service互相检查,如果service被kill了就start一下,但是有时服务没有被kill但是只是代码不执行了,这中情况就没有办法了
    2、创建一个receiver,监听各种action,并start,这种只能说是如果服务被kill了,能尽快的重新运行请问你说的保留notification具体怎么操作呢?