Android四大组件之Service

            Service的基础讲解,一下两篇文章讲的不错:

            1.http://www.360doc.com/content/14/0415/18/2793098_369238276.shtml

           2.http://blog.csdn.net/ryantang03/article/details/7770939   service生命周期相关


          这里只做一些总结和常用知识面试点等:

          1.Service是在哪个线程中运行的?是主线程吗?

           答案:是运行在主线程的,也就是UI线程,而并不是子线程,所以如果有耗时操作,不能在Service中直接写,必须新起线程。

          2.Service生命周期

           

            需要注意的是在调用了onBind之后,service就和对应的activity进行了绑定,如果activity退出时,service也会停止掉。

           当同时调用了startService和bindService两个方法的时候,service必须经过stopService和unBindService两部,service才能进行destroy操作。


  3.如果我们要进行耗时操作,我们当需要在service中进行耗时操作时,需要怎样做?

       (1).在Service中启动线程进行操作。

       (2).用IntentService,它自带了Worker线程。

     有关IntentService的使用可以参考http://www.tuicool.com/articles/zeMFFvB

  4.既然Service不能处理耗时操作,如果要进行耗时操作,我们必须在它内部启动thread或者用IntentService,那我们为什么还要用Service而不是直接用Thread?

        (1).Service只会创造一次,而且程序可以控制它停止

        (2),Service也可以被多个Activity控制,进行资源共享,有自己独立的生命周期方法。而Thread一旦起来了就没有办法控制,且资源不共享,不能在多个Activity中控制一个thread

        (3).Service中可以通过broadcast来启动service,而thread不可以。

     可参见:http://jiangnanlove.iteye.com/blog/1333347

  5.Service可以运行在一个单独的进程中,可以在AndroidManifest中配置process即可。这样我们可以通过启动Service来完成一个进程的创建。

  6.在使用过程中要注意Service的增加会增加耗电量,所以要注意Service的管理和使用。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值