Android 活动-- Activity(待写)

Android 活动-- Activity(待写)

应用程序与进程:

应用程序是一组组件的结合

进程是运行这些组件的载体



任务栈:task stack --> 只针对 activity而言,

作用:用来维护用户的界面(activity)体验

任务栈,其实就一个后进先出的链表,记录维护了,当前开启的activity,一般情况,退出一个activity,就把这个activity从任务栈顶移除

如果任务栈空了,任务栈空了会被回收的,应用程序就算是关闭了,但是注意进程,其实还是存在的。


当打开一个应用程序的时候,首先会创建一个进程,然后再进程里面创建一个任务栈,此时候任务栈里有一个界面就是当前被打开的activity

 


1、Activity启动模式:

在Manifest.xml清单文件中指定launchMode属性值即启动模式

<activity
            android:label="@string/app_name"
            android:name=".MainActivity" 
            android:launchMode="standard"
            android:configChanges="locale|orientation|keyboardHidden">  	
</activity>
		<!--configChanges,运行时的改变事件通知安卓平台要不要重建Activity;以上配置改变本地和方向以及键盘隐藏时不销毁重建activity。keyboardHidden一般	情况要加上,否则还会重建-->


启动模式launchMode:

    1.standard:默认的.

       每次启动都会创建新的对象(new).

    2.singletop:

       单顶模式,如果打开的activity已经在栈顶,不会new,而是直接返回.(应用场景:避免通一个界面被重复的开启)

    3.singleTask:

       和(4)都具有单实例的特点,由此开启的activity是同一个任务.(任务栈)

     (开启一个activity B的时候检查任务栈里面是否有activity B 的实例存在,如果存在,就会清空这个任务栈中activity B上面所有的activity,复用activity  B)

    4.singleInstance:

       和(3)都具有单实例的特点,由此开启的activity不是一个任务.(任务栈)

(这种启动的模式的activity会开启一个新的任务栈,任务栈里面只有一个activity的实例存在,如果这个activity被开启,把这个任务栈放最在前面,如果开启了新的activity,别的activity所在的任务栈会被放在前面,退出也是按标准模式的退出)

  这种启动模式比较极端:在整个手机系统的内存中,只会有一个实例存在,如应用O中的activity A是这种模式,被打开,和应用X打开应用O中的activity A是同一个实例(如来电的activity界面就是singleInstance,因为有很多来电界面)

----------------------------------

Task:任务,是activity集合.

    不是组件,也不是技术.android重用粒度细.activity.

    运行时概念.

 

同一个任务,在同一个栈中,不同任务在不同栈中

 

亲和力

默认情况下同一个程序下,所有的Activity首选在同一个任务当中,当然,可以修改某一个activity的亲和力度,在不同的程序当中可以定义有相同亲和力的activity



2、Activity的生命周期

asd

3、Activity的横竖屏

清单文件中配置:

        <!-- screenOrientation 固定activity方向;值:landscape 水平朝向   portrait 竖直朝向 
        	 configChanges 配置当屏幕方向发生变化时	哪些变化不影响activity生命周期
        	 值:orientation 方向编号时,keyboardHidden 软键盘 ,screenSize 4.0系统屏幕大小的自适应
        -->
        <activity
            android:name="com.seul.towactivity.MainActivity"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name" >
        </activity>




代码中配置:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值