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多次但很快又会出现,即便回复出厂设置和刷机也会再次出现。

易探云2核2G5M仅330元/年起,国内挂机宝云服务器,独立ip

易探云怎么样?易探云是国内一家云计算服务商家,致力香港服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出深圳或北京地区的适合挂机和建站的云服务器,国内挂机宝云服务器(可选深圳或北京地区),独立ip;2核2G5M挂机云服务器仅330元/年起!点击进入:易探云官方网站地址易探云国内挂机宝云服务器推荐:1、国内入门型挂机云服务器...

SpinServers(月89美元) 2*e5-2630L v2,美国独立服务器

SpinServers服务商也不算是老牌的服务商,商家看介绍是是2018年成立的主机品牌,隶属于Majestic Hosting Solutions LLC旗下。商家主要经营独立服务器租用和Hybrid Dedicated服务器等,目前包含的数据中心在美国达拉斯、圣何塞机房,自有硬件和IP资源等,商家还自定义支持用户IP广播到机房。看到SpinServers推出了美国独服的夏季优惠促销活动,最低月...

Linode 18周年庆典活动 不断改进产品结构和体验

今天早上相比很多网友和一样收到来自Linode的庆祝18周年的邮件信息。和往年一样,他们会回顾在过去一年中的成绩,以及在未来准备改进的地方。虽然目前Linode商家没有提供以前JP1优化线路的机房,但是人家一直跟随自己的脚步在走,确实在云服务器市场上有自己的立足之地。我们看看过去一年中Linode的成就:第一、承诺投入 100,000 美元来帮助具有社会意识的非营利组织,促进有价值的革新。第二、发...

bindservice为你推荐
ipad怎么分屏ipad悬浮窗怎么改为分屏?有道云笔记网页版网页版有道云笔记怎么同步到pc显卡挖矿啥意思原因竟为了用来挖矿,躺着赚钱,显卡挖矿什么意思fclose为什么fclose之后remove还是不成功最开放的浏览器我国最出名的十种浏览器查字网衾字怎么读音是什么oracle索引oracle表加索引有什么用? 请举一个例子说明谢谢arc是什么意思arcsin中arc是什么的缩写? 怎么读? ?jdk6我是win7的系统,安装了JDK6,环境配置都正确了。但是安装完没有应用程序啊~天融信防火墙都说天融信的产品不错,那天融信的下一代防火墙真的是当今最好的防火墙产品了吗?
大庆服务器租用 warez 阿里云os 香港bgp机房 站群服务器 正版win8.1升级win10 css样式大全 windows2003iso 40g硬盘 创梦 工信部icp备案号 秒杀汇 台湾谷歌 视频服务器是什么 路由跟踪 smtp服务器地址 帽子云排名 谷歌台湾 免费个人主页 阿里云邮箱申请 更多