小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载三(通过实例来体验生命周期)
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移动应用实战》连载三(通过实例来体验生命周期)的更多相关文章
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)
之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白 ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载四(使用程序载入事件)
在了解了PhoneGap中都有哪些事件之后,本节将開始对这些事件的使用方法进行具体地介绍.本节要介绍的是程序载入事件,也就是deviceready.pause和resume这3个事件. [范例4-2 ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载五(使用PhoneGap获取设备信息)
除了能够将HTML页面打包成可以直接安装运行的APP外,PhoneGap的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的 ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载二(生命周期)
4.1 什么是生命周期 想要真正地理解PhoneGap应用开发的内涵,首先需要理解什么是生命周期.这在字面上其实非常容易理解,一个应用从开始运行被手机加载到应用被退出之间的过程就称之为一个生命周期.为 ...
- 【原创】小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载五(给按钮加图标)
在范例5-4所使用的导航栏中,已经为按钮加入了图标的样式,但是当时并没有介绍按钮的图标究竟是怎么一回事.下面截取范例5-4中导航栏部分的代码: <divdata-role="foote ...
- 小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载四(场景切换)
作为一款真正有使用价值的应用,首先应该至少有两个页面,通过页面的切换来实现更多的交互.比如手机人人网,打开以后先是进入登录页面,登录后会有新鲜事,然后拉开左边的面板,能看到相册.悄悄话.应用之类的其他 ...
- 白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》串行4(场景变化)
作为一个真正的利用价格值应用,首先,你应该至少有两页,通过切换页面来实现很多其他互动.比如手机人人网,首先,打开后进入登录页面,将有登录后,新的东西.然后拉左侧面板.你可以看到相册.私人信息.像其他应 ...
- 构建跨平台APP开发的两本书,这里重点推荐下
第一本是<构建跨平台:jquery Mobile移动应用实战> 是目前jqm开发写的比较入门的一本书,上手很快,但是高手我觉得就没有必要学习了,因为写的比较浅显. 第二本是<构建跨平 ...
- jquery Mobile应用第2课《构建跨平台APP:jQuery Mobile移动应用实战》连载二(简单的QWER键盘)
在jQuery Mobile的布局中,控件大多都是单独占据页面中的一行,按钮自然也不例外,但是仍然有一些方法能够让多个按钮组成一行,比如说在范例6-5中就利用按钮分组的方法使4个按钮并列在一行中,如图 ...
随机推荐
- 【239】◀▶IEW-Unit04
Unit 4 Youth Issues: Computer Use 1 Model1题目及范文分析 Some teenagers spend a lot of time playing compute ...
- apache配置中的小细节
configuration error: couldn’t perform authentication错误的解决办法 configuration error: couldn’t perform au ...
- L2-014. 列车调度 (DP)
火车站的列车调度铁轨的结构如下图所示. Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口 ...
- 用VisualSVN Server创建版本库,以及TortoiseSVN的使用
介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化. SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. ...
- PHP中GD库是做什么用的? PHP GD库介绍11111111
什么是gd库? gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片. 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据 ...
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
最近项目中需要实现一个服务器宕机后短信提醒的功能,个人觉得在使用Python 写http请求这块很方便,发短信这块就使用了python,但是c++程序中调用这个脚本时,编译不通过,提示如下错误: er ...
- 使用ffmpeg编码时,如何设置恒定码率,并控制好关键帧I帧间隔
1. 大家在使用ffmpeg进行视频编码时,使用-b命令,想控制比特率,却发现结果并没有如我们设置所愿,通过码流分析器观察视频码流,码率的波动还是很大的,ffmpeg控制的并不好,这时候,我们可以通过 ...
- Solr 6.7学习笔记(05)-- highlighter
搜索结果高亮显示是搜索引擎中的常用功能,在Solr中,我们可以如下配置: <requestHandler name="/select" class="solr.Se ...
- codevs1229 数字游戏
1229 数字游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解
- uoj#349. 【WC2018】即时战略(动态点分治)
传送门 头一次看着题解有一种咱不会\(c++\)的感觉-- 看题解吧-- //minamoto #include<bits/stdc++.h> #include "rts.h&q ...