4.1.2  通过实例来亲身体验Activity的生命周期

上一小节介绍了Activity生命周期中的各个过程,本小节将以一个简单的实例来使读者亲身体验到Activity生命周期中的各个事件。

在Eclipse中新建一个Android工程,命名为example4_1,修改其MainActivity类中的内容如范例4-1所示。

【范例4-1Activity生命周期的演示】

01     //此处省略若干个导入文件,由Eclipse自动生成
02     public classMainActivity extends Activity {                                            //类MainActivity继承类Activity
03              String TAG="Activity生命周期事件";
04              @Override
05              protected voidonCreate(Bundle savedInstanceState) {
06                        super.onCreate(savedInstanceState);
07                        setContentView(R.layout.activity_main);
08                        Log.e(TAG,"启动onCreate事件");
09              }
10              @Override
11              protected voidonDestroy() {                                                            //重写onDestroy事件
12                        // TODO Auto-generatedmethod stub
13                        super.onDestroy();
14                        Log.e(TAG,"启动onDestroy事件");                                        //在LogCat中显示记录
15              }
16              @Override
17              protected void onPause(){
18                        // TODO Auto-generatedmethod stub
19                        super.onPause();
20                        Log.e(TAG,"启动onPause事件");
21              }
22              @Override
23              protected voidonRestart() {
24                        // TODO Auto-generatedmethod stub
25                        super.onRestart();
26                        Log.e(TAG,"启动onRestart事件");
27              }
28              @Override
29              protected void onResume(){
30                        // TODO Auto-generatedmethod stub
31                        super.onResume();
32                        Log.e(TAG,"启动onResume事件");
33              }
34              @Override
35              protected void onStart(){
36                        // TODO Auto-generatedmethod stub
37                        super.onStart();
38                        Log.e(TAG,"启动onStart事件");
39              }
40              @Override
41              protected void onStop() {
42                        // TODO Auto-generatedmethod stub
43                        super.onStop();
44                        Log.e(TAG,"启动onStop事件");
45              }
46     }

  

运行之后即可看到在LogCat窗口中显示出如图4-2所示的内容。

提示:可以通过设置过滤器来过滤LogCat中的信息,使之只显示与该Activity有关的记录,如图4-3所示。过滤后的内容如图4-4所示。

回过头来再看上一小节中对启动Activity的描述,要启动一个Activity需要经历onCreate、onStart、onResume 3个事件,在图4-4中可以确认这一点。可以通过对手机的进一步操作来验证上一小节中的内容,比如点击HOME键或返回键来观察LogCat中的日志记录。

图4-2  Activity启动时所经历的事件

图4-3  利用Tag标签过滤LogCat中的信息

图4-4  过滤后的LogCat窗口

在Eclipse的代码编辑区域右击,依次选择Source|Overridemethods命令可以看到一些其他的事件,如图4-5所示。

图4-5  Activity中的一些其他事件

这类事件大多对应着应用的某一特定操作或错误。比如事件OnTitleChanged就是在应用的标题被修改时由系统所发出的事件;再比如听音乐,音乐播放到1分50秒时突然打进来一个电话,系统就会对播放器的Activity使用onPause方法,同时启动一个接电话的Activity,当用户接完电话后则又会通过onRestar方法和onStar方法返回音乐播放界面,并调整音乐播放进度为1分50秒。

清华大学出版社推出的《构建跨平台APP:Phonegap移动应用实战》是一本APP实战书,包含20多个APP实例和3个APP项目,还结合了HTML5移动开发。本书面向移动开发入门人员,低门槛,浅阅读,最适合移动APP创业小白。本次发布第3~5章作为读者学习的基础,有兴趣的欢迎购买本书!欢迎加群:348632872,向作者直接提问交流!

小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载三(通过实例来体验生命周期)的更多相关文章

  1. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)

    之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白 ...

  2. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载四(使用程序载入事件)

    在了解了PhoneGap中都有哪些事件之后,本节将開始对这些事件的使用方法进行具体地介绍.本节要介绍的是程序载入事件,也就是deviceready.pause和resume这3个事件. [范例4-2 ...

  3. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载五(使用PhoneGap获取设备信息)

    除了能够将HTML页面打包成可以直接安装运行的APP外,PhoneGap的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的 ...

  4. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载二(生命周期)

    4.1 什么是生命周期 想要真正地理解PhoneGap应用开发的内涵,首先需要理解什么是生命周期.这在字面上其实非常容易理解,一个应用从开始运行被手机加载到应用被退出之间的过程就称之为一个生命周期.为 ...

  5. 【原创】小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载五(给按钮加图标)

    在范例5-4所使用的导航栏中,已经为按钮加入了图标的样式,但是当时并没有介绍按钮的图标究竟是怎么一回事.下面截取范例5-4中导航栏部分的代码: <divdata-role="foote ...

  6. 小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载四(场景切换)

    作为一款真正有使用价值的应用,首先应该至少有两个页面,通过页面的切换来实现更多的交互.比如手机人人网,打开以后先是进入登录页面,登录后会有新鲜事,然后拉开左边的面板,能看到相册.悄悄话.应用之类的其他 ...

  7. 白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》串行4(场景变化)

    作为一个真正的利用价格值应用,首先,你应该至少有两页,通过切换页面来实现很多其他互动.比如手机人人网,首先,打开后进入登录页面,将有登录后,新的东西.然后拉左侧面板.你可以看到相册.私人信息.像其他应 ...

  8. 构建跨平台APP开发的两本书,这里重点推荐下

    第一本是<构建跨平台:jquery Mobile移动应用实战> 是目前jqm开发写的比较入门的一本书,上手很快,但是高手我觉得就没有必要学习了,因为写的比较浅显. 第二本是<构建跨平 ...

  9. jquery Mobile应用第2课《构建跨平台APP:jQuery Mobile移动应用实战》连载二(简单的QWER键盘)

    在jQuery Mobile的布局中,控件大多都是单独占据页面中的一行,按钮自然也不例外,但是仍然有一些方法能够让多个按钮组成一行,比如说在范例6-5中就利用按钮分组的方法使4个按钮并列在一行中,如图 ...

随机推荐

  1. GET和POST的区别及get和post关于请求的编解码的问题

    GET和POST的本质区别是什么?        使用GET,form中的数据将编码到url中,而使用POST的form中的数据则在http协议的header中传输.在使用上,当且仅当请求幂等(字面意 ...

  2. win7 x64 eclipse_kepler下编译 hadoop1.1.2-celipse-plugin

    1.编译前准备 a)       下载和解压hadoop-1.1.2.tar.gz b)       下载并配置ant 2.配置 a)       进入hadoop-1.1.2\src\contrib ...

  3. 2-6 Flutter开发环境与Android开发环境设置实操(Windows)

    通常安装完AS后,sdk的目录 C:\Users\wjw\AppData\Local\Android\sdk 如果在这个目录下没有找到sdk的目录的话 Settings里面搜索sdk,找到Androi ...

  4. WCF大文件传输【转】

    http://www.cnblogs.com/happygx/archive/2013/10/29/3393973.html WCF大文件传输 WCF传输文件的时候可以设置每次文件的传输大小,如果是小 ...

  5. 网络编程demo之Udp和URL

    首先是udp编程客户端发送消息给服务端,服务端接受然后打印到console控制台上 下面是一个有代表性的demo package com.henu.liulei; import java.io.IOE ...

  6. Android权限之三共享UID和签名

    http://blog.csdn.net/a345017062/article/details/6236263 共享UID 安装在设备中的每一个Android包文件(.apk)都会被分配到一个属于自己 ...

  7. uoj#308. 【UNR #2】UOJ拯救计划(并查集)

    传送门 如果把答案写出来,就是\(\sum_{i=1}^ki!\times {k\choose i}\times f_i\),其中\(f_i\)为选\(i\)种颜色方案 发现如果\(i\geq 3\) ...

  8. IT兄弟连 JavaWeb教程 jQuery对AJAX的支持

    jQuery对AJAX的支持 jQuery对Ajax请求的创建.发送.响应.注册数据处理函数.JSON的解析和缓存以及传参等都进行了相应的封装,同时也考虑了浏览器的兼容性问题. jQuery中对AJA ...

  9. 理解SPI

    SPI 全称为 Service Provider Interface,是一种服务发现机制.SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类.这样可以在运行时, ...

  10. 笔记-JavaWeb学习之旅18

    AJAX:ASynchronous JavaScript And XML 异步的JavaScript 和XML 异步和同步:客户端和服务器端相互通信的基础上 同步:客户端操作后必须等待服务器端的响应, ...