湖南万树it学院官网
万树IT:Android基础学习之Activity
更新时间:2017-10-12 09:28   来源:未知   浏览次数:  
  • 分享到:
  同样安卓开发人员在工作中也经常针对Activity工作,因此可以说它是Android学习中基础中的基础。那么,作为一个移动测试领域的Tester,应该对Activity有哪些了解呢?
 
  一、Activity的作用
 
  1)用户交互:
 
  a)Activity可以获取layout/xxx.xml文件内容(.xml文件可以作为界面配置文件),通过setContentView()将界面显示出来;
 
  b)Activity可以获取后台逻辑结果,例如:消息推送、计时结束等,将其更新展示在UI界面,以供用户查看;
 
  c)Activity也可以接收用户的指令,交给后台进行处理。
 
  每个Activity中都包含一个PhoneWindow对象,而PhoneWindow又包含DecorView作为根View。DecorVIew分为两部分:TitleView是安卓界面最上方的工具栏;ContentView则是负责显示主要界面,前面讲过的setContentView()就是将layout/xxx.xml设置在这样的一个view界面里。
 
  2)获取Context对象
 
  a)Context在安卓开发中扮演者一个重要角色,许多系统组件、布局,甚至第三方安卓开源库都需要Context提供功能和环境支持,它贯穿在整个应用进程的生命周期中;
 
  b)Activity与Application、Service一样,是获取应用上下文Context的途径之一。
 
  3)保存状态
 
  这里的存储数据并非指它具有数据库的功能,这里是说Activity在必要的时刻记录当前的某些状态,当用户重新进入这个Activity里时,能够恢复刚才的状态。
 
  4)配置改动后处理
 
  当设备的配置改变时,例如横竖屏切换,Android系统会重建当前的Activity。因为这时候所需的资源可能需要重新加载——例如横竖屏的界面显示布局不同。重建Activity可能就用到了3)中的保存状态的功能。
 
  5)Activity、Service之间切换
 
  Activity可以通过Intent启动其他Activity或者Service,同时通过Intent传递少量的数据。一个应用中可以有许多个Activity,新启动的Activity在Activity栈的栈顶(standard模式)。当用户按下BACk键后,栈顶的Activity弹出,生命周期结束,栈中第二个Activity成为栈顶,就是刚刚的旧界面。这也是连续按BACK键,安卓程序自动返回刚才界面的原因。
 
  二、Activity生命周期
 
  Activity生命周期如下图所示:
  1)完整生命周期
 
  如图中红线所示。onCreate()在首次创建Activity时调用,可用于初始化一些Activity必要的设置,例如UI中Button的显示内容,后台下载资源的线程。而onDestory()则在每次Activity销毁时调用;
 
  2)可见生命周期
 
  如图中蓝线所示。当Activity处于可见状态时(无论能否获取用户输入,只要可以看见)处在这个周期区间中。一旦Activity不可见,则进入onStop(),而当Activity又可见时,onStop()会经过onRestart()最终返回onStart(),继而执行onResume()、running状态;
 
  3)前台生命周期
 
  如图中橙色所示。此时,当前Activity位于屏幕最前端,可以获取到用户的输入信息。当有其他界面盖住当前Activity一部分时,执行onPause()。
 
  注意,Activity可见并不意味着可以获取到用户的输入信息。例如Activity1在运行中,突然弹出一个Activity2挡住了Activity1的一部分,但并未完全遮住,这时Activity1就是可见但不可用。2)和3)的状态要区分开。
 
  三、进程状态
 
  Android系统会尽可能保持应用进程存活,不过一旦资源紧张,Android会根据进程的优先级回收资源,kill掉优先级低的进程。这些优先级的高低,可以说是跟Activity生命周期息息相关的。
 
  进程状态主要分以下几种,优先级从高到低排列:
 
  1)前台进程
 
  正在与用户进行交互的进程。就Activity来说,即那些执行onCreate()、onStart()、onResume()以及处于running的Activity。就目前Android设备的硬件配置而言,这种进程基本不会被系统回收;
 
  2)可见进程
 
  可被用户看见但是不具备与用户交互输入/出的进程,此时Activity可能执行onPause()。这种进程优先级仅次于1);
 
  3)后台进程
 
  不可见,并且没有一个处于running的服务的进程,此时Activity可能执行onStop()。系统中有大量这种后台进程;
 
  4)空进程
 
  Android的应用生存周期结束后,仍可能保留该应用的一部分缓存类,以方便再次启动时减少时间。这种进程优先级最低,当系统资源紧张时会最先被回收。
 
  四、其他
 
  Activity还有一些其他的知识点,比如Activity的栈管理,Activity与Intent的联系,由于篇幅关系,这些可能需要另开一篇文章做说明。关于Activity的一些基础今天就介绍到这里。
 
  哦,对了,使用Activity前需要先在AndroidManifest.xml文件中注册,否则不能使用哦~
 
  
  • 分享到:

联系我们

万树IT软件学院地图导航

如有问题,可在线提交表单

  • 提交后,我们的老师会及时为您回复

© 2017 www.wanshuit.com 湖南万树信息技术有限公司 版权所有 丨 备案号:湘ICP备16021152号

友情链接:湖南万树IT学院 sem软件 模特培训 重庆网站优化 万树XML地图 顺德网络公司 遴选 成都小程序 天津化妆培训 杭州翻译公司