Activity
1,概念:
首先,Activity是Android系统中的四大组件之一,可以用于显示View。
Activity是一个与用记交互的系统模块,几乎所有的Activity都是和用户进行交互的,所以Activity类主要负责创建一个窗口,而你可以通过调用setContentView(View)方法在Activity上放置你的UI组件。
一个应用往往由多个松散组合多个activity,activity之间可以跳转和切换。一个应用第一次启动呈现给用户的activity,是被指定为“主”活性的activity。
2,在深入了解Activity之前,我们先要知道一下MVC设计模式,在JAVAEE(企业版)中MVC设计模式已经很经典了,而且分的也比较清晰了,但是在Android中,好多人对MVC在Android开发中的应用不是很清楚,下面我就先来介绍一下MVC在Android开发中的应用:
·M(Model 模型):Model是应用程序的主体部分,所有的业务逻辑都应该写在这里,在Android中Model层与JavaEE中的变化不大,如:对数据库的操 作,对网络等的操作都放在该层(但不是说它们都放在同一个包中,可以分开放,但它们统称为Model层)。
·V(View 视图):是应用程序中负责生成用户界面的部分,也是在整个MVC架构中用户唯一可以看到的一层,接收用户输入,显示处理结果;在Android应用中一般 采用XML文件里德界面的描述,使用的时候可以非常方便的引入,当然也可以使用
JavaScript+Html等方式作为View。
·C(Controller控制层)android的控制层的重任就要落在众多的activity的肩上了,所以在这里就要建议大家不要在activity中写太多的代码,尽量能过activity交割Model业务逻辑层处理。
在介绍过Android应用开发中的MVC架构后,我们就可以很明确的知道,在Android中Activity主要是用来做控制的,它可以选择要显示的View,也可以从View中获取数据然后把数据传给Model层进行处理,最后再来显示出处理结果。
3,作用:
·人机交互界面
·承载组件
4,Activity的生命周期:
Activity 的生命周期是被以下的函数控制的。
public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}
如下图:
5,Activity使用:
·编写MyActivity类继承Activity
·编写布局,修改MyActivity填充组件
·注册AndroidManifest.xml
·启动激活
6,流程和方法调用场景
· 创建启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
·当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
·当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
·当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
·用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
·当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
· 用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
7,Activity任务栈和启动模式
(1)任务栈:andorid系统对activity的管理是采用任务栈的方式进行管理。大家应该对栈这种数据结构比较熟悉了吧。Activity的启动模式不一样,activity被激活入栈方式不一样。
.standard
模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。
. singleTop
如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建新的实例放入栈顶。它和standard模式区别的地方就是要激活的activity在栈顶的时候,非栈顶的时候一样。
实例:浏览器标签
. singleTask
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
实例:浏览器
. singleInstance
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。
实例:有道词典取词
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务