续上一篇,继续介绍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相关推荐

  1. Android系统简介(上、中、下):历史渊源

    上个月,看到微信的一系列文章,讲到Linux的鼻祖-李纳斯的传记<Just for Fun>, 其人神乎其能, 其人生过程非常有趣,值得每个程序员细细品味. 而实际上,对我而已,虽然做软件 ...

  2. Android 系统简介

    简介 Android 是什么?   Android 是一款操作系统.   Android 是 IT 巨头 Google 公司推出的一款手机系统,是基于Linux内核(不包含 GNU 组件)的自由及开放 ...

  3. 【Android高级】Android系统以及Activity启动讲解

    一.Android系统启动 Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用.启动的过程 ...

  4. Android系统简介

    一.Android系统的前世今生 目前全球智能手机最主要的两大阵营是Android和IOS,Android和IOS是移动操作系统的名称,它们背后的公司是谷歌和苹果,所以有时候也叫做谷歌系统和苹果系统. ...

  5. 【Arch】Android系统简介

    文章目录 0.Google IO 1.Android系统发展历程 2.Android系统特点 3.Android系统框架 0.Google IO 下面是Google IO的logo(Innovatio ...

  6. android回收activity,Android系统回收activity行为

    安卓本身不支持内存分页交换技术,是通过回收activity的方式来回收内存的..activity处于onPause或者onStop状态时,假如系统资源不足(内存不足),会被系统回收释放. 系统回收内存 ...

  7. mDNS移植Android系统简介

    最近有个客户,需要在他的机顶盒上支持Airplay, 其机顶盒系统是Android4.0.4, 此版本系统没有mDNS(需要Android4.1+)及MediaCodec接口 (需要Android4. ...

  8. Android系统基础与常用布局

    Android学习笔记 一.Android系统简介 1.1 体系架构 采用了分层的架构,如下图 1.1.2 Linux内核 ​ Android 平台的基础是 Linux 内核.例如,Android R ...

  9. android app系统的测试_计算机毕设项目003之基于Android系统的App点餐外送系统

    计算机毕设项目之基于Android系统的App点餐外送系统 一. 项目名称 基于Android系统的App点餐外送系统 二. 项目简介 本项目是基于Android系统的手机点餐系统,整个项目分为App ...

最新文章

  1. suse linux登录黑屏,SUSE Linux登录时黑屏解决办法
  2. oracle精度制的数据类型,ORACLE 中NUMBER 类型 低精度转换成高精度
  3. 人脸识别最前沿在研究什么?
  4. 智能家居中语音识别算法研究_语音识别研究获进展
  5. BZOJ1423 : Optimus Prime
  6. eclipse theia_Eclipse的Theia发布,缺少KubeCon,还有更多行业趋势
  7. drool-6.5的自学demo
  8. 《分布式系统概念与设计》读书笔记(第零章)
  9. 淘宝无货源自动群控软件一键铺货接口对接说明
  10. 基于TMC4361-超静音闭环步进电机驱动方案
  11. QQ登录界面(Java)
  12. linux manjaro配置输入法
  13. 程序语言的自我意识与仿他意识
  14. C++function,future,packaged_task
  15. GUI优化工具optimtool
  16. html模拟点击某个键盘按钮,如何使用JavaScript模拟按键或单击?
  17. Autojs-QQ每日定时给女票/男票/闺蜜/基友发送一句话
  18. 性能测试:Loadrunner 脚本录制、设置事务、添加检查点、参数化以及添加关联
  19. 浙商银行入职计算机考试,浙商银行计算机笔试心得
  20. JVM之记忆集和卡表

热门文章

  1. 好程序员web前端分享HTML基础篇
  2. Vue中添加新的路由并访问
  3. 前端使用fis3开启本地服务器,并实现热加载功能
  4. 用Kotlin写Android Gradle脚本
  5. 博为峰JavaEE技术文章 —— Hibernate 指南(3)Hbm文件
  6. 11gR2RAC环境DBCA创建一个数据库错误ORA-15055 ORA-15001
  7. WCF 4.0 Issues with IIS 7.0 on x86 and x64 bit Machines(转载)
  8. 比特币现金在奥地利成为主流
  9. 比特币现金(BCH)是5月的货币之王
  10. Java基础学习总结(21)——数组