Anddroid 需要注意的小知识

Activity的生命周期,分为onCreate onStart onSesume onPause onStop onDestory 

另外,由于我们的应用程序因为意外退出,或者点击home键的时候,会走另外一个生命周期的方法onSaveInstanceState

这个方法在onStop方法之前调用,和onPause方法的先后顺序不确定,这个方法用于保存因为意外退出时,activity的一些

重要信息,通过bandle,在activity重新启动的时候,获取到之前的信息。

在activity重新启动的过程中,可以通过onCreate 或者 onStoreInstatnceState方法获取onSaveInStanceState方法中传递

过来的值,另外需要注意的是,在onCreate方法中必须有对savedInstanceState这个参数的非空判断,二者的区别在于,

使用onSaveInStanceState方法恢复数据的时候,其参数Bandle savedInstanceState一定不会为空。

另外需要注意的是如果activity的启动方式是SIngleTask模式的时候,还会在调用他的onNewIntent方法

2,  启动模式 :

Activity的启动方式分为四种,分别为Standard SingleTop  SIngleTask SIngleInstance

standard启动模式是Activity的默认启动模式,每启动一个新的activity都会创建一个新的实例

singleTop启动模式,如果启动的新Activity位于栈顶,就不会在去新建立一个activity的实例了,

而是复用这个实例。

singleTask启动模式,如果启动一个新的activity,系统首先会检查是否有这个新的activity需要的任务栈,如果没有的话,系统

会新建一个任务栈,并且会把这个activity放在里面。 如果已经存在这个activity需要的任务栈,系统会再次检查这个任务栈中

是否有新建的activity的实例存在,如果有,会复用这个实例,并且清空这个实例上其他所有的activity,如果没有系统会新建一个

activity放在栈顶       (需要注意的是,在清单文件中,有TaskAffinity属性可以设置activity需要的任务栈)

SingleInstance启动模式,系统会为每一个activity新建一个任务栈,且只存在当前的任务栈。

3  启动方式: 

Activity的启动模式分为2种,一种为隐士启动, 一种为显示启动。

显示启动,不需要制定任何的属性,只需要在启动的intent中标记出新activity的类名就行

隐士启动的话,需要配置三个参数action category data

action 可以有多个action属性,必须有,但是只需要有一个完全配对就行。

category 可以没有,如果有的话,必须完全配对

 data 匹配规则跟action类似  (注意:在设置date的属性的时候,setdate 和settype不能分开使用,因为他们会相互清空对方)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值