service两种启动方式的区别

Activity 启动Service两种方式与区别 Activity 启动Service两种方式: startService bindService   startService(Intent): 1.定义一个类继承Service 2.在Manifest.xml文件中配置该Service 3.使用Context的startService(Intent)方法启动该Service 4.不再使用时,调用stopService(Intent)方法... 阅读详情

service,中文名称是服务,服务是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互,而且还要长期运行的任务。

服务运行不依赖于任何用户界面,即使程序切换到后台,或者用户打开另一个应用程序,服务仍然能够保持正常运行。

不过需要注意的是,服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉时,所以依赖于该进程的服务也会停止运行。

另外,也不要被服务的后台概念所迷惑,实际上服务并不会自动开启线程,所有的代码都是默认运行在主线城当中的。也就是说,我们需要在服务的内部手动创建子线程,并在这里执行具体任务,否则就有可能出现主次线程被阻塞住的情况。

service有两种启动方式,一种是通过 startService() 来启动的,另一种是通过 bindService() 来启动的。

第一种:通过 startService() 来启动

通过 startService() 来启动方式的生命周期如下:
这里写图片描述

使用Service的步骤如下:

  1. 定义一个类,并继承 Service
  2. 在 AndroidManifest.xml 文件中配置此 Service
  3. 使用 Context 的 startService(Intent) 方法来启动 Service
  4. 不使用该服务时,调用 stopService(Intent) 方法停止此 Service

如果服务已经开启,就不会重复的执行 onCreate() ,而是调用 onStart() 或 onStartCommand()。而服务停止的时候调用 onDestory() 。

特点:

  • 一旦服务开启跟开启者就没有任何关系;
  • 开启者退出之后,服务还是可以在后台长期运行的。前提是没有调用 stopService(Intent);
  • 开启者不能调用服务里面的方法


第二种:通过 bindService() 来启动

通过 bindService() 来启动方式的生命周期如下:
这里写图片描述

使用Service的步骤如下:

  1. 定义一个类,并继承 Service
  2. 在 AndroidManifest.xml 中配置此 Service
  3. 使用 Context 的 bindService(Intent, ServiceConnection, int) 方法来启动此 Service
  4. 不使用该服务时,调用 unbindService(ServiceConnection) 方法停止此 Service

绑定服务不会调用 onStart() 或 onStartCommand() 方法。

特点:

  • bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。
  • 绑定者可以调用服务里面的方法。
Service的生命周期、两种启动方法的区别 Service的生命周期、两种启动方法的区别 一、A started service onCreate, onStartCommand, onBind 和 onDestroy。这几个方法都是回调方法,都是由Android操作系统在合适的时机调用的,并且需要注意的是这几个回调方法都是在主线程中被调用的。 1、onCreate: 执行startService方法时,如果Service没有运行的时候会创建该Service并执行Service的onCreate回调方法;如果Service已经处于运行中,那么执行startService方法不会执行Service的onCreate方法。也就是说如果多次 立即下载

相关推荐

Android 启动 Service(startservice和bindservice) 两种方式的区别

andrid service 两种启动方式:第一种startservice,第二种bindservice,大家对这两种启动方式的区别了解吗,下面跟着小编一起学习吧

(常面试的面试题)Service的两种启动方式的区别?

Service有两种启动方式,主要是startService和bindService。Service的生命周期方式onCreate,onStart,onDestroy。而这两种启动方式对Service声明周期的影响是不一样的。 1、startService方式启动服务,调用者与服务之间没有关联,即使调用者退出了,服务正常的运行,多次调用startService()方法并不会创建多个服务, 但是o

hmutang的博客 1220

安卓app逆向破解脱壳教程

From:Hook 神器家族的 Frida 工具使用详解:https://blog.youkuaiyun.com/FlyPigYe/article/details/90258758 详解 Hook 框架 frida (信抢红包):https://www.freebuf.com/company-information/180480.html APP逆向神器之Frida【Android初级篇】:https://www.jianshu.com/p/2d755beb1c54 frida 官网文档:https://fr..

sinat_28371057的博客 2万+

Service的两种启动方式和区别?

第一种启动方式:startService(Intent)启动服务 生命周期方法流程:onCreate --- > onStartCommand 关闭服务:stopService(Intent)关闭服务 生命周期方法流程 :onDestory第二种启动方式:bindService(Intent , ServiceConnection , flag)启动服务 生命周期方法流程:onCreate ...

ding_GC的博客 8466

STM32G070xx将Flash页分块方式存储,固定数据块存储,实现一次擦除多次写入

本例程使用STM32G070xx芯片,Flash大小128KB,Flash每页(2048字节)写满后再擦除。操作存储区分为64块,每块32字节,即写满64次擦除一次;标定存储区分为16块,每块128字节,即写满16次擦除一次,每个存储区的块都有各自的头部标记

RaphaelCeo的博客 1544

OpenMV识别颜色源码

【代码】OpenMV识别颜色源码。

dxt258013的博客 402

Service两种启动方式的区别

一、Service第一种启动方式startService 生命周期:oncreate——>onstartCommand——>onDestroy;多次通过该方法启动Service,oncreate函数只会被调用一次,onStartCommand函数会被多次调用,但只需要调用一次stopService就可以销毁该Service; 特点说明:通过该启动方式启动Service,一旦Service启动成

qq_30261075的博客 2957

Qt 5.15.2静态编译避坑实录:MinGW 32位版从源码到Creator配置的全流程踩坑总结

本文详细介绍了Qt 5.15.2 MinGW 32位版本的静态编译全流程,包括环境准备、配置参数优化、编译过程监控及安装后配置。重点解决了静态编译中的常见问题,如参数顺序敏感、路径引号问题等,并提供了性能对比实测数据,帮助开发者高效完成静态编译。

weixin_26749245的博客 271

Service的两种启动方式之间的比较与区别

在Service的生命周期方法中,`onCreate()`在首次绑定时被调用,`onBind()`用于返回一个IBinder对象给组件,`onUnbind()`在所有组件与Service解除绑定时调用,`onDestroy()`在Service被销毁时调用。Service的生命周期方法中,`onCreate()`在首次启动时被调用,`onStartCommand()`用于处理启动请求,`onDestroy()`在Service被销毁时调用。使用`startService()`方法启动Service。

斯黄人民的博客 1593

一款值得关注的开源企业管理ERP系统

盒木ERP是一款开源的现代化企业管理系统,采用前后端分离架构,后端基于Python+Django,前端使用Vue+Ant Design。系统涵盖采购、销售、库存、财务等核心业务模块,支持移动端操作和PDA扫码。具有开源免费、技术先进、功能完善等特点,适合中小企业使用或二次开发。项目提供详细部署指南,支持Docker容器化部署,是学习ERP系统开发和企业数字化转型的优秀选择。

1105

《囚徒健身》 六艺,十式

文章目录《囚徒健身》 六艺,十式1、六艺,十式2、优缺点3、手臂和上半身 《囚徒健身》 六艺,十式 1、六艺,十式 1、俯卧撑: 2、深蹲: 3、举腿: 4、引体向上: 5、桥: 6、倒立撑: 十式就是每个动作分拆为十个不同的动作等级,进行训练 每一式里面,又根据做的组数和个数,分成三层,初级,中级,高级 依次循序渐进,每完成上一个动作的高级,则向下一个动作前进 2、优缺点 优点 : 六个动作都是很常见的,日常的动作,不太需要依赖什么器械,随时随地都可以练习,很方便 这些动作可以覆盖到全身大部分

简简单单Onlinezuozuo 4563

Service的两种启动方式与区别

参数 Service要启动的服务程序的名称该方法会调用 Service 中的 onCreate() 和 onStartCommand() 方法来启动一个后台 Service,当 Service 销毁时直接调用 onDestroy() 方法 参数 service 是定义要绑定的服务程序的名称conn是当服务程序启动和停止时,负责接收信息的接口程序flags是设置绑定的选项,可以是0、BIND_AUTO_ CREATE、BIND_DEBUG_UNBIND、BIND_NOT_FOREGROUND、BIND

Ai1114的博客 2万+

SAPIEN ManiSkill3 入门教程(一)

请注意,table.set_pose(pose) 设置的是演员在世界帧中的坐标系姿势。移除的实体可以再次添加到场景中,但已在场景中的实体则不能再次添加。显示器可以是物理的(如显示器),也可以是虚拟的(如 VNC)。我们可以通过 get_pose()、get_linear_velocity() 和 get_angular_velocity()获取演员的运动量(姿势、线速度、角速度)。现在,让我们创建一个斜坡。例如,您可能需要一个简单的碰撞形状来进行快速模拟,但却需要一个复杂的视觉形状来进行逼真的渲染。

机器人控制与仿真应用 3072

Android Service两种启动方式的区别

Android Service生命周期可以促使移动设备的创新,让用户体验到更优越的移动服务,只有broadcast receivers执行此方法才是激活的,当onReceiver()返回的时候,它就是非激活状态。 如果没有程序停止它或者它自己停止,service将一直运行。在这种模式下,service开始调用Context.startService(),停止于Context.stopServic...

dsd的博客 1905

海康Visionmaster-全局脚本:VM 加载方案后自动执行 的方法,如何让VM在方案加载后自动执行流程?

海康Visionmaster-全局脚本:VM 加载方案后自动执行 的方法,如何让VM在方案加载后自动执行流程?

视觉人机器视觉的博客 2036

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Android中Service两种启动方式的区别

参考:https://www.jianshu.com/p/2fb6eb14fdec Service是Android四大组件之一,也是可执行的程序,有自己的生命周期。创建、配置Service和创建、配置Activity的过程相似。和Activity一样,都是从Context派生出来的。 ---《疯狂android讲义(第二版)》 1、Service第一种启动方式 start方式: 使用步骤: 1....

Virgil_K2017的博客 2203

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Service的两种启动方式及其之间的区别

作为Android四大组价之一的Service,可以在很多场合中进行应用。比如当在播放音频的时候用户启动了其他Activity,这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,或者在后台记录用户地理位置信息的变化等等。开启Service主要有两种方式。 (1)startService();此种开启方式Service会经历onCreate()--onStart()。若Service还没运

siwen1234的博客 8955

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android中Service的两种启动方式区别与适用场景

Service 作为Android中四大组件之一,日常开发中经常会使用到,本文主要讲解Service的两种启动方式,以及两种启动方式的区别,生命周期,以及适用的场景。 Service是运行在主线程上的,是要依托android程序运行的,所以不能做耗时操作。 分别有两种启动方式: 一种startService() ,一种是bindService()。 两种启动方式的生命周期不同: 1、startService() 的生命周期 :onCreate() -> onStartCommand() (.

Anne_Wei的专栏 4600

service 两种启动方式的区别

转载自:http://android.tgbus.com/Android/tutorial/201104/347990.shtml,尊重原创! Service的生命周期Service的生命周期方法比Activity少一些,只有onCreate,onStart,onDestroy我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。    1、通过startServi...

weixin_30645617的博客 192

Service的两种启动方式onstartService和onbindService区别

我们都知道,Service启动有两种方法,一种是onbindService(绑定),一种是onstartService(启动),那这两者究竟有什么不同呢?闲话:今天是我第一次写博客,第一次就这样献给csdn了,我不是大神,只是一个刚工作的实习生,写博客只是为了分享我以前遇到的问题和提高自己,以后我会保持每周最少一更,帮助更多新手解决难题,毕竟编程的最大的乐趣创造价值。 下面就不贴代码了,一小丢丢思路

健哥哥的博客 2962

Service两种启动方式startService和bindService区别

总结 Service两种启动方式startService和bindService区别 1.两者启动的Service的生命周期不同 2.可以通过bindService会绑定到服务,然后利用返回的Binder去调用服务提供的方法. 参考 服务两种启动方式(startService与bindService)的区别 https://blog.youkuaiyun.com/qq_42761395/article/details/98496921 ...

ly969434341的专栏 732

Android Service 两种启动方式的区别

startservice和bindservice都可以启动service Android Service 生命周期可以促使移动设备的创新,让用户体验到最优越的移动服务,只有broadcast receivers执行此方法的时候才是激活的,当 onReceive()返回的时候,它就是非激活状态。 Service(). service可以通过调用Android Service 生命周期()

pqwfree的专栏 385
上一篇: 使用DrawerLayout和SlidingMenu分别实现侧滑菜单、以及AS使用SlidingMenu第三方库的步骤
下一篇: 生命不息,折腾不止
LayneYao
博客等级 码龄10年 449粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值