上QQ阅读APP看书,第一时间看更新
1.2.3 服务类型
服务类型主要有普通服务、前台服务与IntentService,它们主要的区别如下:
1)普通服务:上文提到的就是一般用的服务,启动的方式有startService()和bindService()两种;
2)前台服务:想要一直运行而不被系统回收,那就使用前台服务,有时会在手机状态栏看到有些应用的图标在上面显示,其实就是它开启了前台服务,一直在运行。其实前台服务的使用跟一般服务一样,按正常步骤构建好后,就创建Notification对象,设置各种参数,然后再调用startForeground()方法就可以了;
3)意图服务:即IntentService,由于服务默认运行在主线程中,所以如果直接使用它来处理一些耗时操作,会很容易出现ANR问题。所以此时可以使用IntentService。它可以说是一般服务的升级版,继承Service,相比于一般服务,它有独立的线程来处理Intent请求和各种耗时的操作,所以不用开发者自己动手创建线程。另外,当处理完所有请求后,它会自动停止,所以也不用自己动手调用stopService()方法。