您当前的位置:首页 > 时尚 > 内容

startService和bindService的区别?

一、startService和bindService的区别?

service的生命周期方法比activity少一些,只有oncreate,onstart,ondestroy

我们有两种方式启动一个service,他们对service生命周期的影响是不一样的。

1通过startservice

service会经历oncreate-->onstart

stopservice的时候直接ondestroy

如果是调用者直接退出而没有调用stopservice的话,service会一直在后台运行。

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

2通过bindservice

service只会运行oncreate,这个时候调用者和service绑定在一起

调用者退出了,srevice就会调用onunbind-->ondestroyed

所谓绑定在一起就共存亡了。

注意:service的oncreate的方法只会被调用一次,

就是你无论多少次的startservice又bindservice,service只被创建一次。

如果先是bind了,那么start的时候就直接运行service的onstart方法,

如果先是start,那么bind的时候就直接运行onbind方法。如果你先bind上了,就stop不掉了,

只能先unbindservice,再stopservice,所以是先start还是先bind行为是有区别的。

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

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

这两个方法都可以启动service,但是它们的使用场合有所不同。使用startservice()方法启用服务,调用者与服务之间没有关连,

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

如果打算采用context.startservice()方法启动服务,在服务未被创建时,系统会先调用服务的oncreate()方法,

接着调用onstart()方法。如果调用startservice()方法前服务已经被创建,多次调用startservice()方法并不会导致多次创建服务,

但会导致多次调用onstart()方法。采用startservice()方法启动的服务,只能调用context.stopservice()方法结束服务,服务结束时会调用ondestroy()方法。

如果打算采用context.bindservice()方法启动服务,在服务未被创建时,系统会先调用服务的oncreate()方法,

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

接着调用ondestroy()方法。如果调用bindservice()方法前服务已经被绑定,

多次调用bindservice()方法并不会导致多次创建服务及绑定(也就是说oncreate()和onbind()方法并不会被多次调用)。

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

onbind将返回给客户端一个ibind接口实例,ibind允许客户端回调服务的方法,比如得到service运行的状态或其他操作。这个时候调用者会和service绑定在一起,但onbind只能一次,不可多次绑定。

在service每一次的开启关闭过程中,只有onstart可被多次调用(通过多次startservice调用),其他oncreate,onbind,onunbind,ondestory在一个生命周期中只能被调用一次。

由于android中的service使用了onbind的方法去绑定服务,返回一个ibinder对象进行操作,而我们要获取具体的service方法的内容的时候,我们需要ibinder对象返回具体的service对象才能操作,所以说具体的service对象必须首先实现binder对象,这个样子的话我们才能利用bindservice的方法对service进行绑定,获取binder对象之后获取具体的service对象,然后才获取service中的方法等等。

与采用context.startservice()方法启动服务有关的生命周期方法

oncreate()--onstart()--ondestroy()

oncreate()该方法在服务被创建时调用,该方法只会被调用一次,无论调用多少次startservice()或bindservice()方法,服务也只被创建一次。

onstart()只有采用context.startservice()方法启动服务时才会回调该方法。该方法在服务开始运行时被调用。多次调用startservice()方法尽管不会多次创建服务,但onstart()方法会被多次调用。

ondestroy()该方法在服务被终止时调用。

与采用context.bindservice()方法启动服务有关的生命周期方法

oncreate()--onbind()--onunbind()--ondestroy()

onbind()只有采用context.bindservice()方法启动服务时才会回调该方法。该方法在调用者与服务绑定时被调用,当调用者与服务已经绑定,多次调用context.bindservice()方法并不会导致该方法被多次调用。

转载

二、上层逻辑中层逻辑底层逻辑区别?

在软件开发中,通常会将系统的逻辑划分为上层逻辑、中层逻辑和底层逻辑三个层次。这些层次的区别如下:1. 上层逻辑(high-level logic):上层逻辑是系统中最接近用户的层次,主要负责处理用户的输入和输出,并决定系统的功能和行为。上层逻辑关注系统的整体结构和业务流程,并与用户交互。在上层逻辑中,通常会涉及到业务规则的处理、流程控制、错误处理等。2. 中层逻辑(middle-level logic):中层逻辑负责处理上层逻辑传递过来的任务,可以看作是上层逻辑与底层逻辑之间的桥梁。中层逻辑主要包括对数据的处理、算法的实现、复杂操作的组织与管理等。中层逻辑通常是系统中最核心的部分,主要负责业务逻辑的实现和数据处理,同时也可以调用底层逻辑来完成底层资源的管理和操作。3. 底层逻辑(low-level logic):底层逻辑是系统中最底层的层次,主要负责与硬件或操作系统进行交互,提供基础功能和接口,例如文件操作、网络通信、数据库访问等。底层逻辑通常是与具体平台相关的部分,对上层逻辑和中层逻辑来说是透明的,只需提供相应的接口供上层调用即可。总体来说,上层逻辑关注整体业务流程和用户交互,中层逻辑负责实现业务逻辑和数据处理,底层逻辑则提供底层功能和接口。这种层次划分可以使系统更加模块化和可复用,方便开发和维护。

三、理论逻辑历史逻辑实践逻辑是什么?

历史逻辑实践逻辑是什么?

历史逻辑是研究客观世界发展演变规律的学说,包括人类社会历史和自然界历史两个领域。

理论逻辑是探索如何正确认识客观事物本质和规律的学说,它是历史逻辑的发展和深化,即通过揭示客观事物运动过程中所表现出来的特点和联系。

实践逻辑是关于如何正确处理主观和客观、认识和实践的关系,从而推动人们认识和改造客观世界的学说。

四、什么叫正逻辑负逻辑混合逻辑?

正逻辑:用高电平表示逻辑1,低电平表示逻辑0

负逻辑:用高电平表示逻辑0,低电平表示逻辑1

混合逻辑

组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与电路以前状态无关,而与其他时间的状态无关。 其逻辑函数如下: Li=f(A1,A2,A3……An) (i=1,2,3…m) 其中,A1~An为输入变量,Li为输出变量。 组合逻辑电路的特点归纳如下:

输入、输出之间没有返馈延迟通道;

电路中无记忆单元。

与非门,有零出一,双一出零 只要将其一端接高电平,另一端来1时出0,来0时出1即可。

或非门反之,将一端接低电平 另一端来

门是这样的一种电路:它规定各个输入信号之间满足某种逻辑关系时,才有信号输出,通常有下列三种门电路:与门、或门、非门(反相器)。从逻辑关系看,门电路的输入端或输出端只有两种状态,无信号以“0”表示,有信号以“1”表示。

五、法律逻辑是什么逻辑?

1. 法律逻辑是一种由法律规定的、具有严密逻辑结构的推理方式。法律逻辑是一种基于法律规范的推理方式,它要求逻辑严密、推导正确,同时也要考虑实际情况和现实需要。2. 法律逻辑在法学中非常重要,它涉及到法律规则的解释、应用、推理等方面。法律逻辑的核心是法律规则的推理和解释方法,这是法学研究的基础和核心内容。3. 为了掌握好法律逻辑,法学专业学生需要深入学习法律规则、熟悉案例分析和问题解决技巧,同时需要对社会现实、历史文化和人文素养等方面有一定的认识和理解,才能更好地应对各种复杂的法律问题。

六、辩证逻辑是传统逻辑还是现代逻辑?形式逻辑呢?

辩证逻辑和现代逻辑是同一个概念。逻辑按照思维规律的成熟先后顺序分为:传统逻辑和现代逻辑。传统逻辑包括:形式逻辑和数理逻辑等。现代逻辑主要就是指辩证逻辑。辩证逻辑到马克思时得到成熟,标志着人类思维进入辩证思维阶段,辩证逻辑与马克思的辩证法有着联系和区别,辩证逻辑应该不能等同于辩证法,辩证逻辑是一种思维形式。辩证法事属于哲学的范畴。辩证逻辑的核心是A是A同时又是非A。通常说的现代逻辑就是辩证逻辑,数理逻辑虽然也是在近代才出现的,但其在本质上仍然是传统逻辑。建议看看马佩写的《辩证逻辑》(河南大学出版社)和彭漪涟的《辩证逻辑基本原理》(华东师范大学出版社)。

七、数字逻辑逻辑代表啥?

数字逻辑其他含义

基于二进制数学或布尔代数的逻辑

数字逻辑,是数字电路逻辑设计的简称,其内容是应用数字电路进行数字系统逻辑设计。电子数字计算机是由具有各种逻辑功能的逻辑部件组成的,这些逻辑部件按其结构可分为组合逻辑电路和时序逻辑电路。组合逻辑电路是由与门、或门和非门等门电路组合形成的逻辑电路;时序逻辑电路是由触发器和门电路组成的具有记忆能力的逻辑电路。有了组合逻辑电路和时序逻辑电路,再进行合理的设计和安排,就可以表示和实现布尔代数的基本运算。

八、厘清逻辑还是理清逻辑?

应该是理清逻辑,就是把逻辑梳理清楚。

“理清”一般用于有条理的事物,比如“理清头绪”、“理清思路”等。  

“厘清”的支配对象往往是“关系” “原则” “任务 ”等。在“厘清”之前,人们或许对某个问题或现象没有分辨得很清楚,“厘清”之后,往往就划分了某种界限,使得某问题或现象的性质等得以分明地呈现出来。 

九、逻辑严密还是逻辑严谨?

应该是逻辑严密。

逻辑 [luó jí]

1.思维的规律。

沙汀 《还乡记》二:“这个想法也许不合逻辑,但在情理上却很有根据的。” 王西彦 《夜宴》一:“不过,按照 廖淑宇 先生自己的逻辑讲起来,却实在是有几分冤枉的。”

2.客观的规律性。

艾芜 《谈短篇小说》:“认真研究下去,就可以找出社会生活的某些客观规律,即生活的逻辑。” 杨沫 《林道静的道路》:“这是历史的逻辑,也是生活的逻辑。”

3.顺理成章;符合规律。

洪深 《电影戏剧的编剧方法》第六章三:“至于联合变化的方法,他指出:一个剧情可以逻辑地引起第二个剧情。” 老舍 《黑白李》:“ 黑李 并不黑,只是在左眉上有个大黑痣,因此他是 黑李 ;弟弟没有那么个记号,所以是 白李 ;这在给他们送外号的中学生们看,是很合逻辑的。”

4.指逻辑学。

王力 《龙虫并雕斋文集·逻辑和语言》:“逻辑是关于思维的形式和规律的科学。”

十、数学逻辑和语言逻辑都是逻辑学吗?

都是的。

逻辑学是一门以推理形式为主要研究对象的学科,具有工具性和方法论的功能它有两“多年的悠久历史,形成西方、中国和印度三大逻辑传统,本世纪现代逻辑有着重大发展。逻辑学同哲学研究紧密相关,对哲学、数学、计算机科学、人工智能、语言等的发展有相当重要的作用。逻辑学与中外哲学、语言学、数学、计算机科学等学科有密切联系。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 公益时有什么好处

下一篇: 以旁观者的角度写拔河比赛作文?



猜你感兴趣

推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号