8.2 Service2

Service

注:1.Service不是一个单独的进程,它和它的应用程序在同一个进程中;

       2.Service不是一个线程,这样就意味着我们应该避免在Service中进行耗时操作;


IntentService

简介:自带工作线程的Service。继承于Service并处理异步请求的一个类,请求的Intent记录会加入队列。

流程:client通过startService来启动IntentService,可启动多次,添加入工作队列依次执行,在onHandleIntent回调方法处理。

场景:当一个后台的任务,需要分成几个子任务,然后按先后顺序执行子任务时使用。(自定义普通Service并控制线程比较繁琐)

使用:

配置service
TestIntentService
启动service

结果:

结果

Activity与Service通信

原理:媒介就是Service中的onBind()方法(详细参考8.2 Service 中 bindService的例子)

1.自定义Service中,自定义一个Binder类,然后将需要暴露的方法都写到该类中;

2.Service类中,实例化这个自定义Binder类,然后重写onBind()方法,将这个Binder对象返回;

3.Activity类中实例化一个ServiceConnection对象,重写onServiceConnected()方法,然后 获取Binder对象,调用相关方法即可;


简单前台服务实现

即:状态栏显示Notification;

注:由于service系统优先级比较低,使用前台服务可以让service没那么容易被杀死,但还是可能被杀死的;

前台服务

简单定时后台线程的实现

Timer类:不适合长期后台运行定时任务,CPU一旦休眠Timer中的定时任务就无法运行;

Alarm机制:具有唤醒CPU的功能,需注意区分CPU 唤醒与屏幕唤醒;

暂略。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【Android Service】 Service 简介(★★★) 很多情况下,一些与用户很少需要产生交互的应用程...
    Rtia阅读 3,263评论 1 21
  • java 接口的意义-百度 规范、扩展、回调 抽象类的意义-乐视 为其子类提供一个公共的类型封装子类中得重复内容定...
    交流电1582阅读 2,399评论 0 11
  • 面试必背 会舍弃、总结概括——根据我这些年面试和看面试题搜集过来的知识点汇总而来 建议根据我的写的面试应对思路中的...
    luoyangzk阅读 7,204评论 6 173
  • 转眼,来泉州分公司整整一年。 在我们一生中将会有很多很多值得纪念的日子,这大概就叫做生活中的仪式感吧。晚上跑完步独...
    一颗浮萍阅读 201评论 0 1
  • 你我的相识只不过是一场巧合,然而造化弄人,兜兜转转,你我仍被紧紧拴在一起,出乎意料,当初不屑一顾的我却深爱着你。 ...
    Greenland阅读 366评论 2 2

友情链接更多精彩内容