bindserviceservice在手机程序中起什么作用

bindservice  时间:2021-07-01  阅读:()

Andord程序关闭如何让service继续运行

你可以先 startService() 然后再 bindService() 。

当你不需要绑定的时候就执行 unbindService() 方法,执行这个方法只会触发 Service 的 onUnbind() 而不会把这个 Service 销毁。

Service的生命周期是怎样的?

当在activity里面调用了Context.startService后,系统会得到这个service,然后调用onStartCommand()方法,此时service就是运行起来,直到Service()或Self()方法被调用。

注意,多次调用startService并不会起很多个服务,它好像只有一个实例。

不管调用几次startService,要停止服务,只需要调用Service或Self一次就行了。

也可以调用Context.bindService来得到一人与service的连接,其实就是得到一个IBinder接口的对象,通过这种方式启动服务的话,是不是会调用onStartCommand()方法了。

一个服务可以启动,也可以绑定一个连接到它上面,这种情况下,系统会使服务一直运行,只要它被启动了,或者至少有一个到它的连接。

如果一个服务被结束的话,它会调用onDestroy()方法,那么所有的清理工作都应当在这个方法里面进行。

startService 和 bindService的区别

展开全部 1. 生命周期: startService()方式启动,Service是通过接受Intent并且会经历onCreate()和onStart()。

当用户在发出 意图使之销毁时会经历onDestroy(),而bindService()方式启动,与Activity绑定的时候,会经历onCreate()和 onBind(),而当Activity被销毁的时候,Service会先调用onUnbind()然后是onDestroy()。

2. 控制方式: 前者的控制方式需要使用固定的方法,对Service进行单一的操作。

而后者由于与Activity绑定,不用考虑其生命周期问题,并且从发送 Intent的被动操作,变为可以主动对Service对象进行操作,我们甚至可以建立一个Handler类,对Service进行相关的操作。

大大加强 了Service的灵活性、可操作性。

总结:对于简单的应用startService()启动方式能带来更少的代码,简单的操作。

对于复杂的应用bindService()方式,虽然带来的更多的编码,但同时也带来了更好的可操作性,使其使用起来更像Activity。

******************************************************************************************************** Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy 我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。

1 通过startService Service会经历 onCreate --> onStart Service的时候直接onDestroy 如果是 调用者 直接退出而没有调用Service的话,Service会一直在后台运行。

下次调用者再起来仍然可以Service。

2 通过bindService Service只会运行onCreate, 这个时候 调用者和Service绑定在一起 调用者退出了,Srevice就会调用onUnbind-->onDestroyed 所谓绑定在一起就共存亡了。

注意:Service的onCreate的方法只会被调用一次, 就是你无论多少次的startService又 bindService,Service只被创建一次。

如果先是bind了,那么start的时候就直接运行Service的onStart方法, 如果先是start,那么bind的时候就直接运行onBind方法。

如果你先bind上了,就不掉了, 只能先UnbindService, 再Service,所以是先start还是先bind行为是有区别的。

Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。

服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。

这两个方法都可以启动Service,但是它们的使用场合有所不同。

使用startService()方法启用服务,调用者与服务之间没有关连, 即使调用者退出了,服务仍然运行。

使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。

如果打算采用Context.startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法, 接着调用onStart()方法。

如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务, 但会导致多次调用onStart()方法。

采用startService()方法启动的服务,只能调用Service()方法结束服务,服务结束时会调用onDestroy()方法。

如果打算采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法, 接着调用onBind()方法。

这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法, 接着调用onDestroy()方法。

如果调用bindService()方法前服务已经被绑定, 多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。

如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-->onDestroy()方法.

请教如何用activty绑定service

自己翻了翻文档,搞定了,主要步骤是建立一个service并在其onBind()方法中返回一个Binder继承类对象,然后在你所用的activity中调用bindService(),其中在activity要覆写ServiceConnection中的onServiceConnected()和onServiceDisconnected()方法,尤其要注意第三个参数,不要用默认的0,不然会绑定但不调用onServiceConnected()方法的

service和thread的区别,何时用service,何时用thread

1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。

可以用 Thread 来执行一些异步的操作。

2). Service:Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。

如:onCreate,onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的。

如果是Remote Service,那么对应的 Service 则是运行在独立进程的 main 线程上。

因此请不要把 Service 理解成线程,它跟线程半毛钱的关系都没有! 既然这样,那么我们为什么要用 Service 呢?其实这跟 android 的系统机制有关,我们先拿 Thread 来说。

Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后,如果你没有主动停止 Thread 或者 Thread 里的 run 方法没有执行完毕的话,Thread 也会一直执行。

因此这里会出现一个问题:当 Activity 被 finish 之后,你不再持有该 Thread 的引用。

另一方面,你没有办法在不同的 Activity 中对同一 Thread 进行控制。

举个例子:如果你的 Thread 需要不停地隔一段时间就要连接服务器做某种同步的话,该 Thread 需要在 Activity 没有start的时候也在运行。

这个时候当你 start 一个 Activity 就没有办法在该 Activity 里面控制之前创建的 Thread。

因此你便需要创建并启动一个 Service ,在 Service 里面创建、运行并控制该 Thread,这样便解决了该问题(因为任何 Activity 都可以控制同一 Service,而系统也只会创建一个对应 Service 的实例)。

因此你可以把 Service 想象成一种消息服务,而你可以在任何有 Context 的地方调用 Context.startService、Service、 Context.bindService,Context.unbindService,来控制它,你也可以在 Service 里注册 BroadcastReceiver,在其他地方通过发送 broadcast 来控制它,当然这些都是 Thread 做不到的。

service在手机程序中起什么作用

1.service是安卓的系统服务,总之是整个系统运行的管理者。

但如果你的情况不一样,可能还有第二种,请看2 2.手机系统里总出现的SystemService流氓软件通过后门自动下载安装大量并非你自己安装的应用,SystemService反复删除N多次但很快又会出现,即便回复出厂设置和刷机也会再次出现。

快云科技:香港沙田CN2云服务器低至29元/月起;美国高防弹性云/洛杉矶CUVIP低至33.6元/月起

快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...

bluehost32元/月,2核2G/20GB空间,独立ip,新一代VPS美国云主机!

bluehost怎么样?bluehost推出新一代VPS美国云主机!前几天,BlueHost也推出了对应的周年庆活动,全场海外虚拟主机月付2.95美元起,年付送免费的域名和SSL证书,通过活动进入BlueHost中文官网,购买虚拟主机、云虚拟主机和独立服务器参与限时促销。今天,云服务器网(yuntue.com)小编给大家介绍的是新一代VPS美国云主机,美国SSD云主机,2核2G/20GB空间,独立...

久久网云-目前最便宜的国内,香港,美国,日本VPS云服务器19.9元/月起,三网CN2,2天内不满意可以更换其他机房机器,IP免费更换!。

久久网云怎么样?久久网云好不好?久久网云是一家成立于2017年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,久久网云目前提供有美国免费主机、香港主机、韩国服务器、香港服务器、美国云服务器,香港荃湾CN2弹性云服务器。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松快捷运用云计算!多年云计算领域服务经验,遍布亚太地区的海量节点为...

bindservice为你推荐
mdmMDM是什么的简称啊?firstnamefirst name 是什么意思httpsessionhttpsession 和cookie实现的会话跟踪有什么区别wmiprvsewmiprvse.exe是什么进程webcrackwebcrack4.0bindserviceservice在手机程序中起什么作用备忘录模式手机如何设置备忘录提醒备忘录模式华为荣耀5X怎么在手机上新建一个备忘录丁奇海贼王里“D”的意思是什么?民生电商民生电商招的仓库操作工是干什么的
顶级域名 vps.net hawkhost优惠码 主机点评 外国服务器 rackspace 商家促销 空间服务商 嘟牛 个人空间申请 免费个人空间申请 web服务器的架设 asp免费空间申请 广州服务器 服务器合租 服务器是干什么用的 1元域名 主机管理系统 杭州电信宽带 广州主机托管 更多