[Android学习笔记] Service 学习
来源:互联网 发布:python logger 编辑:程序博客网 时间:2024/05/21 08:54
[Android学习笔记] Service 学习
Service是andoird四大组件之一
继承Service类要重写以下方法:
onBind(): 当在其他组件中调用bindService()方法启动Service时会回调该方法onStartCommand():当在其他组件中调用startService()方法启动Service时会回调该方法onUnBind():当与Service绑定的组件结束时会回调该方法onDestory():当系统由于内存低等原因杀掉Service时会回调该方法。重写这些方法的时候不必像Activity中那样调用父类中该方法。 #Service由”Started”和”Bound”两种组成:Started: 当在其他组件中调用 startService()启动service,这个service是”Started”的;Intent intent = new Intent(this, SimpleService.class);startService(intent);
此时,该Service可能会无限地执行下去,除非系统由于内存低、释放资源等终止它(会调用该service的onDestory()方法)。当调用startService()方法时,系统会回调这个Service的onStartCommand()方法,这个方法的返回值为int类型,用来告诉系统当系统kill掉这个service时,系统如何继续这个service,有三个值可供选择:
START_NOT_STICKY,系统不会重新创建这个service,除非有pending intent要传递START_STICKY,系统会重新创建这个Service,但是不会重新传递最后一个intent也就是说,系统在回调onStartCommand()方法时,参数intent会为null,除非有pending intent去启动service,系统才会传递intent,START_REDELIVER_INTENT系统会重新创建这个Service,并且会传递最后一个intent“Started”的Service当onStartCommand()方法返回后,系统不会结束这个Service。 调用stopSelf()或stopService()方法可以停止该ServiceBound:在其他组件中调用bindService()方法启动,此时Service与启动它的组件生命周期绑定在一起,系统会回调service的onBind()方法返回一个IBinder对象,通过IBinder接口,Service可以与其他进程进行数据交互 (interprocess communication(IPC)).当和它绑定的所有组件都结束时,系统会回调它的onUnbind()方法。一个Service可以和多个组件绑定,但只有第一个组件和它绑定时系统才会调用它的onBind()方法.##创建”Started”Service时有两个类可以作为父类:Service 可以同时处理多个intent,如果要处理耗时和阻塞的任务,需要在子线程中进行,否则会出现ANR,因为Service使用的是应用的主线程,并没有在独立的线程中进行。IntentService Service 的子类,只需实现`onHandleIntent()方法,如果service不需要同时处理多个intent,这将是最好的选择。会创建新的线程,当任务执行完毕后会自动结束Service
Service的生命周期
started Service : 其他组件调用startService()开始到调用自身调用stopSelf()或其他组件调用stopService()结束,即整个生命周期发生在系统开始回调Service的onCreate()方法到回调onDestory方法的结束。bound Service : 其他组件调用bindService()开始到调用自身stopSelf或与它绑定的所有组件都调用了unbindService()结束Service的生命周期两种方式创建的Service并不是完全分开的可以绑定一个已经started 的Service,两种方式创建的Service,系统都会调用onCreate()和onDestory方法##参考资料:Android Guides
阅读全文
0 0
- Android Service学习笔记
- Android Service学习笔记
- Android Service学习笔记
- android service 学习笔记
- Android学习笔记 - Service
- Android学习笔记-Service
- android Service学习笔记
- Android Service学习笔记
- [Android学习笔记] Service 学习
- Android学习笔记之Service学习笔记
- Android Service学习笔记--声明Service
- Android Service学习笔记--创建Service
- Android Service学习笔记--Service生命周期
- Android Service学习笔记--Service知识概要
- android学习笔记之Service
- android学习笔记service介绍
- Android学习笔记--service部分
- android service 服务学习笔记
- Spring的MapPropertySource刷新系统属性值(key-value配置在外部系统中如redis,数据库等)
- 让你飞快构建Android开发框架----Android Studio Template
- 可重用模块化设计运用到menu小程序
- Pyhton3+openCV3初体验
- python+requests接口自动化测试框架实例详解教程
- [Android学习笔记] Service 学习
- Vue.js框架
- 浅谈nginx内存池(三)
- 1.2 Web 资源
- 通过 实例带你学习RPC框架gRPC
- TensorFlow中的那些高级API
- iOS WKWebView时 input 设置 readonly 光标仍显示问题处理
- 静态链表的基本操作实现
- 【makefile】一起写makefile(八) --隐含规则