首页 未命名正文

linux编程_Android流动的生命周期

云返利网 未命名 2020-05-26 09:08:09 18 0
掌握流动的生命周期对任何Android开发者来说都异常重要,Android中的流动是可以层叠的,我们每启动一个洗的流动,就会笼罩在原流动之上,然后点击Back键会销毁最上面的流动,下面的一个流动就会重新显示出来。 实在Android是使用义务(Task)来治理流动的,一个义务就是一组存放在栈里的流动的聚集,这个栈也被称作 返回栈(Back Task),栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的流动,他会在返回栈中入栈,并处于栈顶位置,而每当我们按下Back键或者挪用finish()方式去销毁一个流动时,处于栈顶的流动就会出栈,这时前一个入栈的流动就会重新处于栈顶的位置,系统总是会显示处于栈顶的流动给用户 通过示例图看返回栈是若何治理流动入栈出栈操作的:               流动状态 1、运行状态 当一个流动位于返回栈的栈顶时,这时流动就处于运行状态。系统最不愿意接纳的就是处于运行状态的流动,由于这会带来异常差的用户体验。 2、暂停状态 当一个流动不再处于栈顶位置,但仍然可见时,这时流动就进入了暂停状态,好比对话框形式的流动只会占用屏幕中心的部门区域,你还可以看到后边的界面,这是,后面的流动就处于暂停状态 3、住手状态 当一个流动不在处于栈顶位置,而且完全处于不能见的时刻,就进入了住手状态,就是进入了一个完全不透明的流动,上个流动会处于住手状态,这时系统仍然会为这种流动保留响应的状态和成员变量,然则这并不是完全可靠的,当其他地方需要内存时,处于住手状态的流动有可能会被系统接纳 4、销毁状态 当一个流动从返回栈中移除后就变成了销毁状态,系统倾向于接纳处于这种状态的流动,从而保证手机内存足够 流动的生计期 Activity类中界说了七个回掉方式,笼罩了流动生命周期的每一个环节: 1、 onCreate() 每个流动中都重写这个方式,他会在流动第一次被建立的时刻挪用,你应该在这个方式中完成流动的初始化操作,好比加载结构、绑定事宜。 2、 onStart() 这个方式在流动由不能见变为可见的时刻挪用 3、 onResume() 流动准备好和用户举行交互时挪用,此时的流动一定位于返回栈的栈顶,而且处于运行状态 4、 onPause() 在系统准备去启动或者恢复另一个流动的时刻挪用 5、 onStop() 这个方式在流动完全不能见的时刻挪用 6、 onDestroy() 这个方式在流动被销毁之前挪用,之后流动的状态将变为销毁状态 7、 onRestart() 这个方式咋流动由住手状态变为运行状态之前挪用,也就是流动被重新启动了。   以上七个方式除了onRestart()方式,其他都是两两相对的,从而又可以将流动分为三种生计期 一、 完整生计期 流动在onCreate()方式和onDestroy()方式之间所履历的,就是完整生计期 二、 可见生计期 流动在onStart()方式和onStop()之间所履历的,在可见生命期内,流动对于用户总是可见的,即便有可能无法和用户举行交互。 三、 前台生计期 流动在onResume()方式和onPause()方式之间所履历的,这个生计期内,流动总是处于运行状态,此时的流动是可以和用户举行相互的,我们平时看到和接触最多的也是这个状态下的流动。 流动生命周期示意图:   Activity的启动模式 standard  尺度模式 每次启动都市打开新的实例 singleTop  栈顶唯一 若是要启动的activity处于栈顶,则不再新建实例 singleTask  栈内唯一 若是要启动的activty在Task已经存在,则不再新建实例 singleInstance  事例唯一 若是要启动的activity已经存在,则不再新建实例     Intent与IntentFilter Intent——意图 用于android个组件的启动和组件间通报数据 属性: component  目的组件形貌 action  对Intent执行动作的形貌 data  对此次Intent操作相关数据的形貌 type  对Intent所关联的数据类型的形貌 category  对Intent执行动作的附加信息形貌 extra  对其他一切附加信息的形貌,他是对其他所有附加信息的聚集   Intent-Filter——意图过滤器 对Intent的形貌举行过滤操作,对Intent的各个属性举行匹配,从而选择出响应的组件来执行Intent想要举行的操作   界说 <Intent-Filter>   <action name=“xxxxxxxxx”/>   <action name=“yyyyyyyy”/>   <category name=“ttttttttttt”/>   <category name=“uuuuuuu”/>   <data>   <data> </Intent-Filter> 在IntentFilter中action、category、data都可以存在多个 匹配原则 action:Intent中的action只要和IntentFilter中的随便一个action一样即可 category:Intent中添加的category必须所有在IntentFileter界说的ategory中 data:Intent中的data要和IntentFilter中的data的形貌匹配 type:Intent中的type要和IntentFilter中data要求的mimeType一致

【关于云返利网】

云返利网是阿里云、腾讯云、华为云产品推广返利平台,在各个品牌云产品官网优惠活动之外,云返利网还提供返利。您可以无门槛获得阿里云、华为云、腾讯云所有产品返利,在官网下单后就可以领取,无论是自己用、公司用还是帮客户采购,您个人都可以获得返利。云返利网的目标是让返利更多、更快、更简单!详情咨询13121395187(微信同号)