【译】Android系统简介—— Activity
续上一篇,继续介绍Android系统。上一篇: 【译】Android系统简介
本文主要介绍构建Android应用的一些主要概念:
Activity
Activity是应用程序中一个单独的有UI的页面(screen),例如:在email应用中,会有一个activity用来显示email的列表,还有activity用来显示具体的email。通常来说,只要有用户交互的应用,就会包含至少一个activity。
一个应用可以包含多个activity,每个activity之间可通过intent进行交互,关于intent会在本文后面进行介绍。
一个activity一般继承自android.app.Activity, 所有的activity都被onXX()方法管理着:
- onCreate() - 设置activity的初始化方法
- onStart() - 当activity变可见的时候会调用此方法;当activity停止并重启后,会再次调用此方法;
- onResume() - 当activity可见,并准备接收和处理用户输入时调用此方法;
- onPause() - 当activity将要失去焦点的时候,会调用此方法;此方法会快速的保存为提交的数据,停止CPU密集计算,为activity进入后台运行而准备;
- onStop() - activity失去焦点,此方法被调用。用来释放应用程序使用的资源;
- onRestart() - 当activity停止后,被再需要的时候,调用此方法;此方法会恢复之前activity的状态;
- onDestroy() - 当activity被注销的时候,调用此方法;代表activity生命周期结束;
activity生命周期:
activity生命周期示例
在strings.xml添加
<string name="CodeProjectWebURL">http://www.codeproject.com</string>
重写activity的这些方法:
public class FirstActivity extends Activity {private WebView oWebView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_first);oWebView = (WebView)findViewById(R.id.webView);oWebView.loadUrl(getString(R.string.CodeProjectWebURL));}/** Called when the activity is about to become visible. */@Overrideprotected void onStart() {super.onStart();Toast.makeText(getApplicationContext(), "Inside onStart", Toast.LENGTH_LONG).show();}/** Called when the activity has become visible. */@Overrideprotected void onResume() {super.onResume();Toast.makeText(getApplicationContext(), "Inside onResume", Toast.LENGTH_LONG).show();}/** Called when another activity is taking focus. */@Overrideprotected void onPause() {super.onPause();Toast.makeText(getApplicationContext(), "Inside onPause", Toast.LENGTH_LONG).show();}/** Called when the activity is no longer visible. */@Overrideprotected void onStop() {super.onStop();Toast.makeText(getApplicationContext(), "Inside onStop", Toast.LENGTH_LONG).show();}/** Called just before the activity is destroyed. */@Overridepublic void onDestroy() {super.onDestroy();Toast.makeText(getApplicationContext(), "Inside onDestroy", Toast.LENGTH_LONG).show();}}
Layout添加WebView控件:
<WebViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/webView"android:layout_alignParentTop="true"android:layout_alignParentStart="true"android:layout_alignParentBottom="true"android:layout_alignParentEnd="true" />
运行效果:
在onCreate()方法调用后,onStart()方法便被调用,通过Toast的消息我们可以看到;
当其他的activity被激活时(比如按home键),当前的activity就会调用onPause()方法,然后onStop()方法立即也被调用;
onResume()被调用的场景:当应用正在运行时,来了个电话,当前应用就会失去焦点(onPause, onStop),电话应用就会获得焦点;当打完电话后,应用又重新获得焦点,这时候onResume()方法被调用;
当activity结束(调用onFinish方法)或者系统为了内存空间临时销毁activity实例的时候,onDestroy()方法被调用。
PS:还是需要把activity, service, content provider, intent, fragement分拆成不同文章,实在是有点长
备注:
1. 本文在翻译过程中有所删减;
2. 关键词汇没有翻译,以免混淆理解;
3. 原文:http://www.codeproject.com/Articles/802449/Article
本文版本历史:
初始版 2014.08.31
转载于:https://www.cnblogs.com/codesee/p/3947700.html
【译】Android系统简介—— Activity相关推荐
- Android系统简介(上、中、下):历史渊源
上个月,看到微信的一系列文章,讲到Linux的鼻祖-李纳斯的传记<Just for Fun>, 其人神乎其能, 其人生过程非常有趣,值得每个程序员细细品味. 而实际上,对我而已,虽然做软件 ...
- Android 系统简介
简介 Android 是什么? Android 是一款操作系统. Android 是 IT 巨头 Google 公司推出的一款手机系统,是基于Linux内核(不包含 GNU 组件)的自由及开放 ...
- 【Android高级】Android系统以及Activity启动讲解
一.Android系统启动 Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用.启动的过程 ...
- Android系统简介
一.Android系统的前世今生 目前全球智能手机最主要的两大阵营是Android和IOS,Android和IOS是移动操作系统的名称,它们背后的公司是谷歌和苹果,所以有时候也叫做谷歌系统和苹果系统. ...
- 【Arch】Android系统简介
文章目录 0.Google IO 1.Android系统发展历程 2.Android系统特点 3.Android系统框架 0.Google IO 下面是Google IO的logo(Innovatio ...
- android回收activity,Android系统回收activity行为
安卓本身不支持内存分页交换技术,是通过回收activity的方式来回收内存的..activity处于onPause或者onStop状态时,假如系统资源不足(内存不足),会被系统回收释放. 系统回收内存 ...
- mDNS移植Android系统简介
最近有个客户,需要在他的机顶盒上支持Airplay, 其机顶盒系统是Android4.0.4, 此版本系统没有mDNS(需要Android4.1+)及MediaCodec接口 (需要Android4. ...
- Android系统基础与常用布局
Android学习笔记 一.Android系统简介 1.1 体系架构 采用了分层的架构,如下图 1.1.2 Linux内核 Android 平台的基础是 Linux 内核.例如,Android R ...
- android app系统的测试_计算机毕设项目003之基于Android系统的App点餐外送系统
计算机毕设项目之基于Android系统的App点餐外送系统 一. 项目名称 基于Android系统的App点餐外送系统 二. 项目简介 本项目是基于Android系统的手机点餐系统,整个项目分为App ...
最新文章
- suse linux登录黑屏,SUSE Linux登录时黑屏解决办法
- oracle精度制的数据类型,ORACLE 中NUMBER 类型 低精度转换成高精度
- 人脸识别最前沿在研究什么?
- 智能家居中语音识别算法研究_语音识别研究获进展
- BZOJ1423 : Optimus Prime
- eclipse theia_Eclipse的Theia发布,缺少KubeCon,还有更多行业趋势
- drool-6.5的自学demo
- 《分布式系统概念与设计》读书笔记(第零章)
- 淘宝无货源自动群控软件一键铺货接口对接说明
- 基于TMC4361-超静音闭环步进电机驱动方案
- QQ登录界面(Java)
- linux manjaro配置输入法
- 程序语言的自我意识与仿他意识
- C++function,future,packaged_task
- GUI优化工具optimtool
- html模拟点击某个键盘按钮,如何使用JavaScript模拟按键或单击?
- Autojs-QQ每日定时给女票/男票/闺蜜/基友发送一句话
- 性能测试:Loadrunner 脚本录制、设置事务、添加检查点、参数化以及添加关联
- 浙商银行入职计算机考试,浙商银行计算机笔试心得
- JVM之记忆集和卡表