Android 四大组件之Service.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android 四大组件之Service

Android 四大组件之Service 分类:程序语言|标签:Android|日期: 2016-03-15 02:00:06 ---恢复内容开始--- 1,Service的生命周期 INCLUDEPICTURE \d /create/article \* MERGEFORMATINET  onCreate第一次创建service的时候调用。 onStartCommand启动service的时候调用。 onStart(This method was deprecated in API level 5. Implement? HYPERLINK /reference/android/app/Service.html \l onStartCommand(android.content.Intent, int, int) onStartCommand(Intent, int, int)?instead.) onDestroy销毁的时候调用。 2,进程优先级(由高到低):(红色字体的两个进程是经常被系统回收的两个进程) ??? 1. Foreground process 前台进程 用户正在操作的应用程序的进程. ??? 2. Visible process??? 可视进程? 用户可以看到, 但无法进行操作的应用程序的进程. ??? 3. Service process??? 服务进程? 后台运行的服务所在的进程.(如果有Activity再前台,则该进程属于前台进程) ??? 4. Background process 后台进程? 最小化应用程序, 托管到后台运行. ??? 5. Empty process????? 空进程??? 已经退出的程序, 没有任务在运行. 3,service的使用注意事项:   1.是否可以在service里写一些费时操作? 不能。如果有耗时操作可能会导致ANR的发生。 (onReceive方法内是否可以写耗时操作?原因) ? ? ?? 原因是:service这些回调方法的代码是运行在主线程上的。   2.IntentService 该服务已经启动了一个线程,你不必再启动了。你要做的事情直接写到onHandleIntent,它会在子线程里处理。 三道面试题: service和activity的区别。 activity可以和用户交互,service可以在后台做些事情而不用跟用户交互。 activity在退出程序后会退出,而对于service,如果没有显示的调用停止服务,那么服务就没有结束,它仍在后台运行。 最大的区别应该是:没有服务运行的后台进程叫后台进程,而有服务的后台进程叫服务进程。安卓系统的内存回收经常会回收掉优先级低的后台进程。 既然程序已经退出,为什么还保留空进程? 优化用户体验。当用户下次启动该APP的时候,无需重新给分配进程,节约时间,提高效率。只有当内存不足时采取回收资源。  service和线程都是在后台运行,那他们之间有什么关系? service和线程不是一个范畴的东西。service是四大组件之一,是一个特殊的类,在service中可以另起线程。service本身不是运行在一个单独进程中,默认情况下service是运行在主线程中的。 service的具体使用: 在activity中启动service与停止service    1 //启动服务 2 Intent intent = new Intent(this,MyService.class); 3 startService(intent); 4 //停止服务 5 Intent intent = new Intent(this, MyService.class); 6 stopService(intent); ?   2,activity通过绑定service,可以调用服务内的方法(activity如果关闭的话,service也会结束) //在Activity中调用本地服务(同一个应用中的服务)中的方法: //1.调用bindservice去绑定服务,传递一个连接桥对象 //2.在service内部去继承一个Binder,实现的子类 。该子类可以随意调用service内的方//法。 //3.在onBind方法中,返回该子类的实现。 //4.当绑定ok,连接桥建立成功之后,连接桥对象的onServiceConnected 会被调用到, 这里面会返回一个IBinder对象,该对象就是onBind返回的那个。 //5.拿到这个IBinder对象之后,强转为MyBinder接收,然后调用其方法即可。 //绑定和解绑服务 public void bindservice(View view){

文档评论(0)

pep2233 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档