跟着Android官网学习Activity
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的更多相关文章
- Knockout.Js官网学习(系列)
1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js ...
- 一劳永逸搭建android开发环境(android官网reference sample api tutorial全下载)
[摘要]本文简单介绍了android开发环境的搭建,重点介绍了SDK manager和AVD升级问题:并提供了android reference,sample,api,及docs的下载信息. [1]为 ...
- 跟着minium官网介绍学习minium-----(一)
某天,再打开微信开发者工具的时候收到一条推送.说是微信小程序自动化框架 Python 版 -- Minium 公测. Url如下: https://developers.weixin.qq.com/c ...
- [Android]官网《monkeyrunner》中文翻译
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5050768.html 翻译自 Android Develope ...
- [Android]官网《UI/Application Exerciser Monkey》中文翻译
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5049041.html 翻译自 Android Develope ...
- [Android]官网《Testing Support Library》中文翻译
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5048524.html 翻译自 Android Develope ...
- [Android开发教程]Android官网developer training中文版教程 - 1.1.1 创建一个Android项目
本系列持续更新中.转载请注明来源. 前言:近期打算系统学习一下Android开发,发现Android官网上的developer training也是个非常好的学习资料,于是想到一边学习一边写一个中文版 ...
- 【Spark深入学习 -16】官网学习SparkSQL
----本节内容-------1.概览 1.1 Spark SQL 1.2 DatSets和DataFrame2.动手干活 2.1 契入点:SparkSess ...
- android官网被封掉了,只好用这个网站进谷歌了!嘎嘎
http://developer.android.com/sdk/index.html 这个可以进去,但是必须是搜狐 .360,uc都不用特意FQ http://173.1 ...
随机推荐
- Grok debugger
http://www.cnblogs.com/vovlie/p/4227027.html http://it.taocms.org/10/5802.htm
- android dialog点击其他区域消失
只需调用dialog对象的setCanceledOnTouchOutside方法,传入参数为true即可. 如下代码实现: //点击其他区域dialog消失 menuDialog.setCancele ...
- LESS CSS 总结
1.LESS 简介 less是动态的样式表语言,通过简洁明了的语法定义,使编写 CSS 的工作变得非常简单 类似Jquery框架 中文网站: http://www.lesscss.net/ 2.编译工 ...
- CURL 多线程问题
http://blog.csdn.net/wslz2001/article/details/12117127 默认情况下libcurl完成一个任务以后,出于重用连接的考虑不会马上关闭 如果没有新的TC ...
- 好看的游戏soul calibur
http://soulcalibur.fr/index.php?wiki/sophitia/ http://astuce-soluce.playfrance.com/index.php/Soul_Ca ...
- 使用intellij idea搭建MAVEN+springmvc+mybatis框架
原文:使用intellij idea搭建MAVEN+springmvc+mybatis框架 1.首先使用idea创建一个maven项目 2.接着配置pom.xml,以下为我的配置 <projec ...
- tortoisesvn › prefer local prefer repository
tortoisesvn › prefer local prefer repository
- James搭建邮件服务器
来源:http://chenfengcn.iteye.com/blog/356874 1 关于James与Javamail Apache James(Java Apache Mail Enterp ...
- Error Code: 1175
用mysql workbench 更新一个表的时候报如下异常: Error Code: 1175. To disable safe mode, toggle the option in Prefere ...
- IT项目量化管理:细化、量化与图形化 与 中国IT项目实施困惑
IT项目开发和实施的组织先后在组织中引入项目管理模型的管理制度.流程和方法,但收入甚微.大量的IT项目依然面临着无休止的需求蔓延与频繁加班.项目工期失控.质量低下等典型的项目失控现象.对项目引入量化意 ...