- 浏览: 662552 次
- 性别:
- 来自: 安徽
文章分类
- 全部博客 (252)
- Html/Div+CSS (12)
- Js/Jquery (34)
- Flex (2)
- Ajax (3)
- Java (35)
- C# (15)
- Spring (16)
- Hibernate (13)
- Struts2 (12)
- Struts1 (7)
- DWR (1)
- iBatis/myBatis (9)
- Tag(JSTL、EL) (1)
- Android (44)
- SQL (7)
- SEO (7)
- Exception (3)
- Tool (10)
- Other (3)
- WebService (9)
- Apache (7)
- Ext (0)
- Utils (12)
- thinking in programme (2)
- Hadoop (0)
- ActiveMQ (0)
- HTML5/CSS3 (0)
- WPF (1)
- NodeJs (1)
- 设计模式 (0)
- 程序人生 (1)
- 随笔 (1)
- Linux (1)
- Load Balance (0)
最新评论
-
drinkjava2:
太复杂了而且不通用,利用ThreadLocal可完美解决这一问 ...
JDBC的多条件动态查询 -
u013107014:
multipartRequest.getFiles(" ...
多文件上传 by MultipartFile and Multiple -
liyys:
可惜没讲你mysql数据库的表的设计
iBatis入门 -
Mapple_leave:
效果还是挺不错的,谢谢了。
中文简体与繁体的转换 -
arcpad:
JS禁用浏览器退格键
Activity 是整个 Android 平台的基本组成,生命周期主要包括三个阶段:
运行态( Running State ):
此时的 Activity 程序显示在屏幕前台,并且具有焦点,可以和用户的操作动作进行交互,例如,向用户提供信息、捕获用户单击按钮的事件并作处理;
暂停态( Paused State ):
此时 Activity 程序失去了焦点,并被其他处于运行态的 Activity 取代在屏幕前台显示,如果切换后的 Activity 程序不能铺满整个屏幕窗口或者是本身具备透明效果,则该暂停态的 Activity 程序对用户仍然可见,但是不可以与其进行交互;
停止态( Stopped State ):
停止态的 Activity 不仅没有焦点,而且是完全不可见,虽然其也保留状态和成员的信息,停止态的 Activity 会在系统需要的时候被结束;
Activity 程序的生命周期控制方法:
No. |
方法 |
可关闭? |
描述 |
1 |
onCreate |
不可以 |
当 Activity 程序启动之后会首先调用此方法 |
2 |
onRestart |
不可以 |
Activity 程序停止后再次显示给用户时,调用此方法 |
3 |
onStart |
不可以 |
当为用户第一次显示界面时调用此方法 |
4 |
onResume |
不可以 |
当获得用户焦点的时候调用此方法 |
5 |
onPause |
可以 |
当启动其他 Activity 程序时调用此方法,用户进行数据的提交、动画处理等操作 |
6 |
onStop |
可以 |
当一个 Activity 程序完全不可见时调用此方法,此时并不会销毁 Activity 程序 |
7 |
onDestory |
可以 |
程序被销毁时调用,调用 finish() 方法或系统资源不够使用时将调用此方法 |
下面我们来通过一个程序来观察一下 Activity 的生命周期
ActivityLifeCycle01Activity.java
package com.iflytek.demo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ActivityLifeCycle01Activity extends Activity { private Button mybut = null; /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { System.out.println("*** {A} FirstActivity --> onCreate()"); super.onCreate(savedInstanceState); super.setContentView(R.layout.first_main); this.mybut = (Button) super.findViewById(R.id.mybut); // 取得组件 this.mybut.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(ActivityLifeCycle01Activity.this, SecondActivity.class); ActivityLifeCycle01Activity.this.startActivity(intent); // 执行跳转 } }); // 单击事件 } @Override protected void onDestroy() { System.out.println("*** {A} FirstActivity --> onDestroy()"); super.onDestroy(); } @Override protected void onPause() { System.out.println("*** {A} FirstActivity --> onPause()"); super.onPause(); } @Override protected void onRestart() { System.out.println("*** {A} FirstActivity --> onRestart()"); super.onRestart(); } @Override protected void onResume() { System.out.println("*** {A} FirstActivity --> onResume()"); super.onResume(); } @Override protected void onStart() { System.out.println("*** {A} FirstActivity --> onStart()"); super.onStart(); } @Override protected void onStop() { System.out.println("*** {A} FirstActivity --> onStop()"); super.onStop(); } }
SecondActivity.java
package com.iflytek.demo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SecondActivity extends Activity { private Button mybut = null; @Override public void onCreate(Bundle savedInstanceState) { System.out.println("*** [B] SecondActivity --> onCreate()"); super.onCreate(savedInstanceState); super.setContentView(R.layout.second_main); this.mybut = (Button) super.findViewById(R.id.mybut); // 取得组件 this.mybut.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(SecondActivity.this, ActivityLifeCycle01Activity.class); SecondActivity.this.startActivity(intent); SecondActivity.this.finish(); } }); // 单击事件 } @Override protected void onDestroy() { System.out.println("*** [B] SecondActivity --> onDestroy()"); super.onDestroy(); } @Override protected void onPause() { System.out.println("*** [B] SecondActivity --> onPause()"); super.onPause(); } @Override protected void onRestart() { System.out.println("*** [B] SecondActivity --> onRestart()"); super.onRestart(); } @Override protected void onResume() { System.out.println("*** [B] SecondActivity --> onResume()"); super.onResume(); } @Override protected void onStart() { System.out.println("*** [B] SecondActivity --> onStart()"); super.onStart(); } @Override protected void onStop() { System.out.println("*** [B] SecondActivity --> onStop()"); super.onStop(); } }
程序一旦运行之后,后台输出:
*** {A} FirstActivity --> onCreate() *** {A} FirstActivity --> onStart() *** {A} FirstActivity --> onResume()
让第一个Activity跳转到第二个Activity(完全遮盖):
*** {A} FirstActivity --> onPause() *** [B] SecondActivity --> onCreate() *** [B] SecondActivity --> onStart() *** [B] SecondActivity --> onResume() *** {A} FirstActivity --> onStop()
1、通过按钮事件,返回第一个Activity:
*** [B] SecondActivity --> onPause() *** {A} FirstActivity --> onCreate() *** {A} FirstActivity --> onStart() *** {A} FirstActivity --> onResume() *** [B] SecondActivity --> onStop() *** [B] SecondActivity --> onDestroy()
2、通过后退按钮,返回第一个Activity:
*** [B] SecondActivity --> onPause() *** {A} FirstActivity --> onRestart() *** {A} FirstActivity --> onStart() *** {A} FirstActivity --> onResume() *** [B] SecondActivity --> onStop() *** [B] SecondActivity --> onDestroy()
上面的 1 和 2 步骤,其执行结果是一样的,所以我们可以总结出:
当使用返回按钮时,对于 2 会自动进行销毁,相当于调用了 finish() 方法执行。
因为现在第二个 Activity 程序属于完全遮盖了一个 Activity 程序,那么如果不完全遮盖,我们将第二个 Activity 改为对话框的形式:
<activity android:label="@string/app_name" android:name=".SecondActivity" android:theme="@android:style/Theme.Dialog" />
此时第二个 Activity 无法完全遮盖第一个 Activity
程序一旦运行之后,后台输出:
*** {A} FirstActivity --> onCreate() *** {A} FirstActivity --> onStart() *** {A} FirstActivity --> onResume()
让第一个Activity跳转到第二个Activity(不会完全遮盖):
*** {A} FirstActivity --> onPause() *** [B] SecondActivity --> onCreate() *** [B] SecondActivity --> onStart() *** [B] SecondActivity --> onResume()
1、通过按钮事件,返回第一个Activity:
*** [B] SecondActivity --> onPause() *** {A} FirstActivity --> onStop() *** {A} FirstActivity --> onCreate() *** {A} FirstActivity --> onStart() *** {A} FirstActivity --> onResume() *** [B] SecondActivity --> onStop() *** [B] SecondActivity --> onDestroy()
2、现在第一个Activity程序并不会停止执行,通过后退按钮,返回第一个Activity:
*** [B] SecondActivity --> onPause() *** {A} FirstActivity --> onResume() *** [B] SecondActivity --> onStop() *** [B] SecondActivity --> onDestroy()
多个 Activity 程序的入栈操作,最早先打开的 Activity ,则放在栈底,出栈,则以“后进先出”原则;
一旦使用 finish() 方法,就表示一个 Activity 程序结束了,就不会入栈了。
发表评论
-
This version of ADT requires android SDK
2013-07-25 16:45 1536Windows系统下用Eclipse开发工具开发An ... -
Android学习13-----网络通信(4) WebView组件
2012-11-27 09:18 2452WebView 是一个开发的浏览 ... -
Android学习13-----网络通信(3) 与Web Service进行通讯
2012-11-26 09:40 1856这里我们的WebService使用xFire开发。 ... -
Android学习13-----网络通信(2) 与Socket交换数据
2012-11-23 09:11 3267对于网络开发而言,最常用的交互模式:WebService、We ... -
Android学习13-----网络通信(1) 与WEB服务器交换数据
2012-11-22 09:11 2157与Web服务器交互: 如果手机要想与 web ... -
Android学习11-----多媒体技术(5) 媒体录制
2012-11-16 08:10 1844在Android中通过android.media ... -
Android学习11-----多媒体技术(4) 使用摄像头拍照,多点触控
2012-11-15 08:37 2830一、摄像头拍照 前面说媒体播放 时了解了 ... -
Android学习11-----多媒体技术(3) 媒体播放
2012-11-14 08:25 1378在 Androi ... -
Android学习11-----多媒体技术(2) Animation
2012-11-13 08:47 1955一、渐变动画, Tweened Animation ... -
Android学习11-----多媒体技术(1) 绘制简单图形,Bitmap,Matrix
2012-11-12 08:48 1564一、绘制简单图 ... -
Android学习12-----手机服务(4) 传感器
2012-11-19 09:13 1986传感器一般用于游戏中,在 Android 系统中为 ... -
Android学习12-----手机服务(1) 取得电池电量和声音服务:AudioManager
2012-11-18 11:18 3427一、取得电池电量信息 ... -
Android学习10-----Android组件通信 (8) 桌面显示组件:AppWidget
2012-11-02 08:36 1996一、 AppWidget 在使用 Androi ... -
Android学习10-----Android组件通信 (7) 广播机制:Broadcast
2012-11-01 08:43 1476一、 广播: 广播也是一种信息的发送机制,在 ... -
Android学习10-----Android组件通信 (6) PendingIntent
2012-10-31 08:20 2203Intent 的主要功能是表示用 ... -
Android学习10-----Android组件通信 (5) Service
2012-10-30 08:25 1673Service 基本组成: ... -
Android学习10-----Android组件通信 (4) 消息机制
2012-10-29 08:22 1508在 Android 操作系统中存在着消息队列的操作 ... -
Android学习10-----Android组件通信 (3) ActivityGroup
2012-10-26 08:23 2261导航栏在 Android 中的应用是很常见的,前面 ... -
Android学习10-----Android组件通信 (1) Intent
2012-10-24 08:43 1922在一个项目之中,会由多个 Activity ... -
Android判断是否有网络连接
2013-04-25 16:34 1401Android中判断有时候因为功能的需求,需要判断是否有网络 ...
相关推荐
Activity之间通信及其生命周期变化,及回传参数等基础知识点
3.4 Android应用程序生命周期 48 3.5 理解应用程序的优先级和进程状态 49 3.6 分离资源 50 3.6.1 创建资源 50 3.6.2 使用资源 57 3.6.3 To-Do List资源示例 60 3.6.4 为不同的语言和硬件创建资源 61 3.6.5 ...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
本文实例讲述了Android编程中的四大基本组件与生命周期。分享给大家供大家参考,具体如下: Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。 一:了解...
《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...
第10章 Content Provider组件的实现原理 10.1 Content Provider组件应用实例 10.1.1 ArticlesProvider 10.1.2 Article 10.2 Content Provider组件的启动过程 10.3 Content Provider组件的数据共享原理 10.3.1...
2 2 1 应用程序的生命周期 2 2 2 Activity简介 2 2 3 Service简介 2 2 4 BroadcastReceiver简介 2 2 5 ContentProvider简介 2 2 6 Intent和IntentFilter简介 2 3 小结 第3章 Android布局管理器 3 1 控件类概述 3 1 1...
9.1.2 Activity生命周期 180 9.2 Intent 183 9.2.1 显式Intent 184 9.2.2 隐式Intent 186 9.2.3 匹配组件 186 9.3 多Activity之间跳转 188 9.3.1 多个Activity之间数据传递 189 9.3.2 跳转与返回 192 9.3.3 ...
第10章 Content Provider组件的实现原理 10.1 Content Provider组件应用实例 10.1.1 ArticlesProvider 10.1.2 Article 10.2 Content Provider组件的启动过程 10.3 Content Provider组件的数据共享原理 ...
2. 掌握Activity的生命周期。 3. 掌握组件间的数据传递方法。 4. 掌握数据回传的方法。 实验三 数据存储 一、实验目的: 1.掌握Android数据存储的基本方式。 2. 掌握ListView的使用。 3. 掌握SQLite的使用。 实验...
第5章 Android基本程序单元ActivityAndroid 基本程序单元Activity,讲述了Android中重要组件Activity的创建、启动和生命周期等内容 续表 篇 名章 名内容简介 第二篇 技术篇第6章 Android组件之间的信使...
3.2 Android的生命周期 3.3 Android程序U设计 3.4 小结 第4章 用户界面开发 4.1 用户界面开发详解 4.1.1 用户界面简介 4.1.2 事件处理 4.2 常用控件应用 4.2.1 文本框(Textiew) 4.2.2 列表(ListView) 4.2.3 提示(T0...
掌握Activity生命周期。 3. 掌握Activity之间的跳转及数据传递。 实验内容: 内容1:Activity的存活(见参考文档)。 内容2:新建联系人(根据参考文档)。 内容3:装备选择(根据参考文档)。 注:内容2和内容3...
3.2.1 Activity的生命周期 3.2.2 Activity类的结构 3.3 Activity的两种界面设计方式 3.3.1 基于XML的界面设计 3.3.2 基于代码的界面设计 3.4 应用实例:在界面中显示图片 第4章 Android人机界面和常用组件 4.1 用户...
13.1 Android组件和线程 13.1.1 活动在主线程上运行 13.1.2 广播接收程序在主线程上运行 13.1.3 服务在主线程上运行 13.1.4 ContentProvider在主线程上运行 13.1.5 单一主线程的影响 13.1.6 ...
3.5.2 Activity生命周期 3.6 Intent简介 3.6.1 Intent属性与过滤器 3.6.2 Intent启动系统Activity 3.7 小结 练习 第4章 视图组件 4.1 视图组件的使用模式 4.1.1 视图组件的定义 4.1.2 资源的访问 ...
◆ 深入分析了Android应用程序的组件和生命周期 ◆ 探讨了Android的UI原理、设计理念和UI API,使用户界 面在手机、平板电脑和电视上都引人注目 ◆ 介绍了创建基于地图的应用程序和使用基于位置的服务 的...
本章内容服务(Service)是Android... Service的生命周期 绑定Activity和Service 在BroadcastReceiver中启动Service 系统服务 时间服务 在线程中更新GUI组件 AIDL服务 在AIDL服务中传递复杂的数据