zoukankan      html  css  js  c++  java
  • 关于android中两种service的编写简单总结

    1.startservice (两种方法,继承service类或者继承intentservice 类)

    继承service类,在onstartcommend重载方法中实现业务逻辑的处理,如果耗时过长最好新开一个线程,因为默认是在程序的主线程中,会造成阻塞等问题。

    在有多个请求的时候,为了防止在第一个请求结束服务的时候第二个请求刚好传入,但因为服务被结束而失败,可以使用startid 配合 stopself(startid)进行判断,如果stopself(startid)中的ID与现有onstartcommdID不同的话就不会结束服务。

    继承intentservice类,在onhandleintent中实现业务逻辑,该类其实是封装了hanlder处理方法,每次都是新开一个线程,可以排队处理多个请求,可以对请求进行异步处理,不用担心UI阻塞的问题,在所有的请求都处理完毕之后会自动关闭服务

    2.bindservice

     依然是继承service类,是通过startbindservice()进行启动,在service中实现onbind()进行业务处理,可以绑定多个启动者,并在onbind方法的返回值处返回自定义的继承了Binder类的实例,来让启动Activity获得该实例,用来执行一些service内部的公用方法,实现调用者和服务之间的通信。

    当每一个该类型服务的调用者都与该service解除绑定之后,该实例会自动销毁。

    -----人若无名,则可专心练剑
  • 相关阅读:
    HDU5418.Victor and World(状压DP)
    POJ2686 Traveling by Stagecoach(状压DP)
    POJ3254Corn Fields(状压DP)
    HDU5407.CRB and Candies(数论)
    CodeForces 352D. Jeff and Furik
    CodeForces 352C. Jeff and Rounding(贪心)
    LightOj 1282 Leading and Trailing
    Ural 1057. Amount of Degrees(数位DP)
    HDU 2089 不要62 (数位DP)
    HDU5366 The mook jong (DP)
  • 原文地址:https://www.cnblogs.com/u3shadow/p/4268673.html
Copyright © 2011-2022 走看看