Android安全笔记-Service基本概念
Posted IT1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android安全笔记-Service基本概念相关的知识,希望对你有一定的参考价值。
个是android中的一个重要组建:
1. Scheduled服务:调度任务服务。
·JobScheduler
2.Started服务:其生命周期和启动它的组建无关。
·startService
·onStartCommand
3.Bound服务:一个组件bind服务,这个服务提供client-server形式的接口该组件调用和交互主要用于IPC,其生命周期和绑定的组建有关系,如果没有组建绑定则销毁。
·bindService
·onBind
IntentService
Service通常是运行在应用主线空间的,除非特定指明运行在单独的线程;
IntentService继承与Service,使用一个工作线程来处理所有的服务启动请求。
·onHandleIntent
onHandleIntent里面有个callBack可以对各个消息进行分别执行。
Bound Service
Bound Service是c-s接口的服务器,允许组件绑定改服务,并发送请求,接手响应以及其他IPC行为。
允许多个组件绑定,当无绑定组件时,服务销毁,除非服务还由startService启动。
bindService进行绑定,并立即结束返回。
服务真正连接时会通过ServiceConnection的onServiceConnected回调函数来通知客户端。
IBinder
创建IBinder
·继承Binder类:client和server处于同一进程;
·使用Messenger:跨进程IPC,并且通过实现请求队列实现线程安全;
·使用AIDL:Android接口定义语言,非线程安全文件为.aidl;
AIDL
Android接口定义语言,定义IPC的接口:
·跨进程通信;
·需要自己处理多线程的问题;
AIDL接口的定义
·定义一个AIDL接口;
·实现接口方法;
·暴露接口实例到client
Service生命周期
callback method | 触发条件 | 说明 |
onStartCommand | startService | 启动 |
onBind | bindService | 返回IBinder接口 |
onCreate | 创建 | |
onDestroy | stopSelf stopService | 停止和销毁 |
Foreground Service
这个这样的
写代码时,调用startForeground
以上是关于Android安全笔记-Service基本概念的主要内容,如果未能解决你的问题,请参考以下文章
Android安全笔记-进程间通信基本概念(intentbundleParcelableparcel)