什么是Activity:
Activity是Android的四大组件之一,专门负责控制视图View与用户进行交互的活动类,在实际开发中使用频率最高的组件之一。(通俗来讲,activity就相当于界面,QQ界面、微信界面之类的)。
如何创建Activity:
Activity在创建时必须要在AndroidMainifest.xml文件中通过和标签进行注册,这样才能通过解析AndroidMainifest.xml文件中的标签找到对应的Activity进行启动。在Android studio或者eclipse中,如果通过想到方式进行创建activity,软件将会自动的在AndroidMainifest.xml文件中注册。若通过创建class的方式创建,则需要手动在AndroidMainifest.xml文件中注册。
Activity启动方式:
Activity的启动方式有4中,在不同的场景下在AndroidMainifest.xml的标签的“android:launchMode” 属性来指定启动模式,区分Activity启动方式的好处就是可以避免创建大量重复的Activity
在说明activity启动方式前,想要介绍一个概念叫做“任务栈”,每一个应用程序都有一个任务栈,用于存放activity,功能类似于函数的调用栈,不懂的小伙伴们可以自行百度。入栈的先后顺序代表了Activity的出现顺序。例如Activity的出现顺序为Activity1 -> Activity2 -> Activity3,则任务栈中的Activity顺序为:
有了任务栈的概念,我们就来看一下4种启动方式:
1、standard:每次激活activity都会创建一个activity实例,例如:源栈顶为activity2,再次激活activity2时,会再次创建一个activity2:
2、singleTop:若某个activity自己激活自己,即任务栈栈顶就是该activity,则不需要创建activity实例,其他情况则需要创建,如:
3、singleTask:如果要激活的activity已经存在在任务栈中,则不需要创建activity实例,只需要将此activity之上的所有实例出栈,让此activity置于栈顶即可,如:
4、singleInstance:此种启动模式用于多个application,当application1的任务栈已经激活了activity1,application也要激活activity1,则直接共享application1的任务栈中的activity1即可,如:
Activity的生命周期:
废话不多说,先看图:
下面我们来研究一下这张图中的7种activity方法:不废话,再来看图:
1、启动activity,调用onCreate()方法,然后调用onStart()方法,然后调用onReaume()方法,activity进入运行状态
2、当前activity被其他activity覆盖或者锁屏时,调用onPause()方法暂停当前activity
3、 当前activity由被覆盖状态回到前台或者解锁时系统调用onResume()方法,再次回到运行状态
4、当前activity转到新的activity界面或者按Home键回到主屏,自身退居后台时系统先调用onPause()方法,然后调用onStop()方法,进入停滞状态
5、用户后退回此activity,系统调用onRestart(),onStart(),onResume()方法,再次进入运行状态
6、当前activity处于被覆盖或者后台不可见状态(2和4),系统内存不足,杀死当前activity;然后用户又回到当前activity,则调用onCreate(),onStart(),onResume()方法,进入运行状态
7、用户退出当前activity,系统调用onPause(),onStop(),onDestory()方法,结束当前activity
不同Activity之间数据的传递:
由于内容较多,请看下节内容 android开发:4-2 不同Activity之间数据的传递、代码实例分析,不同Activity之间数据的传递,我会用实例代码进行分析