你的位置:首页 > 操作系统

[操作系统]四大组件之Activity详解


一、Activity的概要说明

     我看过Activity的源码,Activity类注释大概是这样解释的:几乎所有的Activity都是与用户交互用的,我想用了一个几乎的意思应该是排除一些纯展示界面吧,因此Activity类主要是创建一个窗口来展示我们所做的UI界面,我们用的时候通常是全屏来展示UI界面的,但是Activity也有一些其他的用途,比如当做一个悬浮的视窗来用(在清单文件里更改Activity的主)。

二、Activity的四种LaunchMode

     设置:<activity android:name=".MainActivity" android:launchMode="standard" />

     1、Standard:把Activity设置成Standard启动模式的意思是:比如当前显示的界面是FirstActivity,此时任务栈里就会有一个FirstActivity实例,接下来由FirstActivity跳转到FirstActivity,此时任务栈里就会生成一个新的FirstActivity实例,如果再次跳转到FirstActivity,任务栈里又会多出第二个FirstActivity实例,到现在为止任务栈里一共有三个FirstActivity实例,这时候我们连着按两次Back键,才会返回到第一个FirstActivity,如下图所示:

         

     4、singleInstance:这种启动模式的特别之处在于会启动一个新栈,一个栈存放一类(类别)的实例,就好比动物园里,好多只老虎有自己的园子,好多只猴子又有自己的园子,这里的老虎猴子就是不同的Activity,每一只老虎猴子就是个自Activity的实例。

         比如说我们当前显示的界面是FirstActivity,此时栈里就会有一个FirstActivivity实例,接下来由FirstActivity跳转到SecondActivity,这个时候就会出现一个新栈来存放SecondActivity实例的,按一下Back键又回到了第一个栈里(如下边第一个图)。假如我们从FirstActivity跳转到SecondActivity,又从SecondActivity跳转到FirstActivity,这个时候在FirstActivity所在的栈里又会创建一个新的FirstActivity实例放在栈顶,接下来我们按两次Back键,并没有退出程序,而是回到了SecondActivity(如下边第二个图)。

 

说明:
                
     3、
 
四、Activity类里容易被忽略的方法
     (一)onNewIntent(Intent intent)
         Activity的启动模式为singleTop/singleTask会执行onNewIntent方法,比如从OneActivity(SingTask模式)跳转到TwoActivity,再从TwoActivity回来,OneActivity的生命周期就会变成onNewIntent()---->onResart()------>onStart()----->onResume(),也就是说只要OneActivity在任务栈里,并且又不是第一次进入到OneActivity,就会执行onNewIntent()方法。那么
   (二)onSaveInstanceState(Bundle outState)
          在网上查过很多人资料,说这个方法只有在系统内存不够时,Activity被强制杀死的时候才会被执行,但是这种说法是错误,我试了几种情况,也会执行  
    onSaveInstanceState方法。
          1、Activity正常的跳转
        
           2、按Home键退到后台的时候
       
           3、横竖屏切换的时候,比如我们在看电影的时候,横竖屏切换的时候,必须保存切换之前看的进度。
        普吉岛游报价普吉岛旅游价格特价普吉岛游深圳到普吉岛旅游报价到普吉岛旅游要多少钱哈尔滨极地馆学生票2015最新价格?哈尔滨极地馆学生票票价? 哈尔滨极地馆官网?哈尔滨极地馆网上怎么预定? 哈尔滨极地馆表演时间?哈尔滨极地馆几点表演? 五一劳动节比如世界有什么好玩的活动?成都比如世界游玩攻略? 春节期间去贺州泡温泉好不好? 云南旅游注意什么? 厦门白鹭洲公园门票怎么算?门票包括看演出的吗? 贺州温泉在哪?从广州出发怎么去? 博罗响水河两日游攻略?博罗龙花洞响水河漂流网上可以预订吗? 阳山广东第一峰好玩不?广东第一峰旅游风景区团购价格? 九龙湖度假村团购票价?肇庆九龙湖度假村要门票吗? 肇庆九龙湖度假山庄介绍?九龙湖度假山庄有住宿吗? 普吉岛旅游注意事项 暖冬旅游胜地图片 北京滑雪场下周开业 日本温泉旅游 AT27C102490PC Datasheet AT27C102490PC Datasheet AT27C1024-90PC Datasheet AT27C1024-90PC Datasheet AT27C1024-90PI Datasheet AT27C1024-90PI Datasheet 旅游社 旅游社 旅游社 国外旅游 国外旅游 国外旅游 文化旅游 文化旅游 文化旅游