Service其实service这个类是最好理解,多线程后台运行就靠的它(悲剧的iphone哦…),比如你想上网的时候后台还播放music,那后台的music就是通过service来运行的。以上是网上看到的,似乎不太明白service跟线程有什么关系自己做个例子,activity里调用线程类,用handler来取线程执行的数据。 那么service什么时候跟线程能关联上呢?? 一般启动service就是startservice和bindService呗哪位大侠给讲讲

解决方案 »

  1.   

    你可以这样理解:service就是一种特殊的线程,它只能在后台运行。
      

  2.   

    通常我们会将一些长时间或大计算量的操作用一个单独的线程来运行,以防止类似操作阻塞Process进程。
    比如我们可以为一个Service(如播放音乐的Service)产生一个Thread线程。但是Service和Thread又是有区别的: 
    Service类  是可以供其他应用程序来调用这个Service的
    而Thread只是在本类中在使用  如果本类关闭 那么这个thread也就没了 
      

  3.   

    service可以给各种activity调用吧,线程好象不行
      

  4.   

    大家都说了很多 =- -,,我说一点。。Service是跑在主线程的。。也就是和UI线程 和activity同一个线程
    也就是说使用service 做耗时的任务的时候 还是要自己去开启一个新的线程的。。!要不然会阻塞ui线程哦。。!
      

  5.   


    为什么耗时的任务要开启新线程,不开启,就在service里做不行吗?
    阻塞ui线程??? 能举个例子吗?
      

  6.   

    android有一个anr(Application Not Responding)制度
    5秒内没响应就会 弹出anr窗口比如你去查询网络服务器xxx信息
      

  7.   

    Service的功能应该是介于activity 与Thread之间的一个功能。
      1:Service内可以处理界面远程,比如弹出一个消息框,而线程不可以。
      2:Service像Activity一样,不能处理耗时操作,耗时操作都需要放在Thread处理
      3:Service可以通过Activity调用,但Thread不可以。
      4:Service可以长时间运行在后台,即使程序关闭也如此。但Thread不行。
      5:Service是进程与进程间通讯的,不同的Service是处在不同的进程中,而Thread是一个线程。
      6:一般Service与Thread可以处理比较复杂的操作,如果网络编程,可以通过Service进行监听,然后通过Thread进行处理数据,处理完后进行反馈
      

  8.   

    你的描述中有一个严重的错误,即service 启动后不是自动就运行在一个后台线程中滴。实际上,service启动后是运行在 mainthread下面的,如果你要做的工作是耗时的事情,那么必须在service里面new 一个新的线程来做。