Android Service小记
Service 是Android 的一种组件,跟线程无关。
Service 分两种启动方式 startService()和bindService()
两种都需要在Androidmanifest.xml配置
<service android:name="com.xx.xx"></service>
两种Intent均可以使用
Intent intent= new Intent("com.itg.download");
或者
Intent intent= new Intent(context,service.class);
两种启动方式
生命周期
startService: 未创建:onCreate()->onStartCommand()->onStop()->onDestroy()
已创建:onStartCommand()->onStop()->OnDestroy()
bindService:未创建:onCreate()->onBind()->onUnbind()->onDestroy()
已创建:onBind()->onUnbind()->onDestroy()
即:两者onCreate()方法只会执行一次。两者即使多次被创建但只会有一个service实例。
startService方式,一经创建,即使依赖的Activity被摧毁,依旧可以不受影响的运行;
而bindService方式,随依赖的Activity销毁而结束。
关于LocalService和RemoteService
解释:localService即本地服务,生命周期依赖于主进程(UI进程)。remoteService,独立服务,被创建于独立进程,如需与UI交互,需要IPC。
使用 两种启动方式默认即是localService;
RemoteService,需配置
1:<service android:name="com.xx.xx" process=":remote"></service> 或: 2:<service android:name="com.xx.xx" process=".remote"></service> 区别:1:本应用私有服务独立进程。2:共享服务独立进程 下面写法错误,打包会出错 <service android:name="com.xx.xx" process="remote"></service> 出错:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED manifest 写法畸形 即写法不当。
remote是service名字后缀,不限制。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?