1.Activity介绍

An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map. Each activity is given a window in which to draw its user interface. (说白了Activity就是一个和用户交互的界面) The window typically fills the screen, but may be smaller than the screen and float on top of other windows.(一般来说Activity会填满屏幕,也有可能比屏幕小,浮在其他窗口(Activity)的上面)

An application usually consists of multiple activities that are loosely bound to each other. Typically, one activity in an application is specified as the "main" activity,(有的Activity会被设为主Activity(<Activiy>元素里含有<intent-filter>),当程序第一次启动的时候,会显示这个Activity) which is presented to the user when launching the application for the first time. Each activity can then start another activity in order to perform different actions.(一般来说,每个Activity都可以启动其他Activity) Each time a new activity starts, the previous activity is stopped, (每次一个新的Activity启动,前面启动的那个Activity就会停止)but the system preserves the activity in a stack (the "back stack")(但是系统会把这些Activity保存在栈里面). When a new activity starts, it is pushed onto the back stack and takes user focus.(每次一个activit启动,就会被它放到back stack里同,且获得聚集) The back stack abides to the basic "last in, first out" stack mechanism(这个栈是后进先出的), so, when the user is done with the current activity and presses the Back button, it is popped from the stack (and destroyed) and the previous activity resumes.(所以当对当前Activity_2操作完成,要返回Activity_2时,Activity_2会从back stack中弹出,并且被销毁,而Activity_1则会resume) (The back stack is discussed more in the Tasks and Back Stack document.)

When an activity is stopped because a new activity starts, it is notified of this change in state through the activity's lifecycle callback methods. There are several callback methods that an activity might receive,(当一个Activity因为一个新的Activity的启动而改变状态时,会调用相应的回调函数) due to a change in its state—whether the system is creating it, stopping it, resuming it, or destroying it—and each callback provides you the opportunity to perform specific work that's appropriate to that state change. For instance, when stopped, your activity should release any large objects, such as network or database connections(当Activity停止(stop)的时候,应该释放一些大的对象,比如网络连接,数据库连接). When the activity resumes, you can reacquire the necessary resources and resume actions that were interrupted(但是Activity resume的时候,可以继续之前中断的一些操作). These state transitions are all part of the activity lifecycle.

  1.1  back stack 后退栈 (先进后出)([]表示栈)

    应用启动显示Activity_1,栈会插入Activity_1                                [Activity_1];

    跳到Activity_2,栈插入Activity_2                            [Activity_1,Activity_2];

跳转到Activity_3,栈插入Activity_3                                                                          [Activity_1,Activity_2,Activity_3];

    按返回键,Activity_3会从back stack中弹出,并且被销毁,Activity_2会继续(resume)  [Activity_1,Activity_2]

总结:Activity一显示,就会被压到栈中,一按返回按钮,就会被弹出栈,栈先进后出。应用只显示栈顶的Activity

2.创建Activity

写一个类继承Activity,实现一些生命周期的类,比如:created, stopped, resumed, or destroyed
其中下面两个方法是最重要的
onCreate()
You must implement this method.必须实现的方法 The system calls this when creating your activity(系统创建activity的时候就会调用该方法). Within your implementation, you should initialize the essential components of your activity. (在onCreate()实现里,要对activity的组件进行初始化)Most importantly, this is where you must call setContentView() to define the layout for the activity's user interface.(最重要的是还要高用setContentView(),这个方法是用来定义这个activiy的布局的)
onPause()
The system calls this method as the first indication that the user is leaving your activity (though it does not always mean the activity is being destroyed). This is usually where you should commit any changes that should be persisted beyond the current user session (because the user might not come back)(系统会调用这个方法做为第一迹象表明用户要离开这个Activity。这时候,这个方法需要对一些超过当前用户session的“更改”进行保存。虽然不一定意味着这个Activity会被destory,但是用户可能不会再回来).

跟着Android官网学习Activity的更多相关文章

  1. Knockout.Js官网学习(系列)

    1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js ...

  2. 一劳永逸搭建android开发环境(android官网reference sample api tutorial全下载)

    [摘要]本文简单介绍了android开发环境的搭建,重点介绍了SDK manager和AVD升级问题:并提供了android reference,sample,api,及docs的下载信息. [1]为 ...

  3. 跟着minium官网介绍学习minium-----(一)

    某天,再打开微信开发者工具的时候收到一条推送.说是微信小程序自动化框架 Python 版 -- Minium 公测. Url如下: https://developers.weixin.qq.com/c ...

  4. [Android]官网《monkeyrunner》中文翻译

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5050768.html 翻译自 Android Develope ...

  5. [Android]官网《UI/Application Exerciser Monkey》中文翻译

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5049041.html 翻译自 Android Develope ...

  6. [Android]官网《Testing Support Library》中文翻译

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5048524.html 翻译自 Android Develope ...

  7. [Android开发教程]Android官网developer training中文版教程 - 1.1.1 创建一个Android项目

    本系列持续更新中.转载请注明来源. 前言:近期打算系统学习一下Android开发,发现Android官网上的developer training也是个非常好的学习资料,于是想到一边学习一边写一个中文版 ...

  8. 【Spark深入学习 -16】官网学习SparkSQL

    ----本节内容-------1.概览        1.1 Spark SQL        1.2 DatSets和DataFrame2.动手干活        2.1 契入点:SparkSess ...

  9. android官网被封掉了,只好用这个网站进谷歌了!嘎嘎

         http://developer.android.com/sdk/index.html    这个可以进去,但是必须是搜狐 .360,uc都不用特意FQ     http://173.1 ...

随机推荐

  1. POJ3034+DP

    题意:给定一个N*N的矩阵, 然后在这个矩阵的每个格子在任意时间会出现一个鼹鼠,这个出现     出现鼹鼠的时间是输出信息所确定的. 现在你手里有一把锤子能够去锤这些鼹鼠. 你能     够移动锤子, ...

  2. poj 2065 SETI 高斯消元

    看题就知道要使用高斯消元求解! 代码如下: #include<iostream> #include<algorithm> #include<iomanip> #in ...

  3. Java 垃圾回收机制

    1.delete是C++里面用于释放内存的运算符,而不是Java. 2.当发现某个对象的引用计数为0时,就将对象列入待回收列表中,并不是马上予以销毁. 3.System.gc()仅仅是一个回收请求,J ...

  4. SaaS系列介绍之一: SaaS的前身ASP介绍

    1. 引言 未来将越来越不可预测,这是新经济最具挑战性的方面之一.商务和技术上的瞬息万变会产生变化,这既可以看作要防范的威胁,也可以看作应该欢迎的机遇.                         ...

  5. HDMI介绍与流程

    HDMI接口 http://baike.c114.net/view.asp?id=17671-21565442 DDC(Display Data Channel)通道用于HDMI发送和接收端之间交换一 ...

  6. Ubuntu中安装DiscuzX2

    http://blog.csdn.net/kevin_ysu/article/details/7452938 一.Apache的安装 Apache作为一个功能强大的Web程序,自然是架建Web服务器的 ...

  7. log file sync

    Recently, our application system has updated one app. I receive a email of complain the db server ch ...

  8. Java汉字排序(1)排序前要了解的知识(数组和list的排序接口)

    对于包含汉字的字符串来说,排序的方式主要有两种:一种是拼音,一种是笔画. 本文就讲述如何实现按拼音排序的比较器(Comparator). 作者:Jeff 发表于:2007年12月21日 11:27 最 ...

  9. 判断浏览器类型-----------navigator.userAgent.indexOf()

    <script language="JavaScript"> <!-- function getOs() { var OsObject = "" ...

  10. poj 1459 Power Network(增广路)

    题目:http://poj.org/problem?id=1459 题意:有一些发电站,消耗用户和中间线路,求最大流.. 加一个源点,再加一个汇点.. 其实,过程还是不大理解.. #include & ...