Android安全笔记-Service基本概念

本文详细介绍了Android中的服务概念,包括Scheduled服务、Started服务和Bound服务的特点及应用场景。探讨了Service、IntentService的工作原理,以及如何使用IBinder、AIDL实现进程间通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个是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触发条件说明
onStartCommandstartService启动
onBindbindService返回IBinder接口
onCreate创建
onDestroystopSelf stopService停止和销毁

Foreground Service

这个这样的

写代码时,调用startForeground

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值