- 浏览: 677141 次
- 性别:
- 来自: 安徽
文章分类
- 全部博客 (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 1604Windows系统下用Eclipse开发工具开发An ... -
Android学习13-----网络通信(4) WebView组件
2012-11-27 09:18 2523WebView 是一个开发的浏览 ... -
Android学习13-----网络通信(3) 与Web Service进行通讯
2012-11-26 09:40 1901这里我们的WebService使用xFire开发。 ... -
Android学习13-----网络通信(2) 与Socket交换数据
2012-11-23 09:11 3313对于网络开发而言,最常用的交互模式:WebService、We ... -
Android学习13-----网络通信(1) 与WEB服务器交换数据
2012-11-22 09:11 2198与Web服务器交互: 如果手机要想与 web ... -
Android学习11-----多媒体技术(5) 媒体录制
2012-11-16 08:10 1898在Android中通过android.media ... -
Android学习11-----多媒体技术(4) 使用摄像头拍照,多点触控
2012-11-15 08:37 2896一、摄像头拍照 前面说媒体播放 时了解了 ... -
Android学习11-----多媒体技术(3) 媒体播放
2012-11-14 08:25 1422在 Androi ... -
Android学习11-----多媒体技术(2) Animation
2012-11-13 08:47 2002一、渐变动画, Tweened Animation ... -
Android学习11-----多媒体技术(1) 绘制简单图形,Bitmap,Matrix
2012-11-12 08:48 1631一、绘制简单图 ... -
Android学习12-----手机服务(4) 传感器
2012-11-19 09:13 2025传感器一般用于游戏中,在 Android 系统中为 ... -
Android学习12-----手机服务(1) 取得电池电量和声音服务:AudioManager
2012-11-18 11:18 3517一、取得电池电量信息 ... -
Android学习10-----Android组件通信 (8) 桌面显示组件:AppWidget
2012-11-02 08:36 2044一、 AppWidget 在使用 Androi ... -
Android学习10-----Android组件通信 (7) 广播机制:Broadcast
2012-11-01 08:43 1522一、 广播: 广播也是一种信息的发送机制,在 ... -
Android学习10-----Android组件通信 (6) PendingIntent
2012-10-31 08:20 2276Intent 的主要功能是表示用 ... -
Android学习10-----Android组件通信 (5) Service
2012-10-30 08:25 1747Service 基本组成: ... -
Android学习10-----Android组件通信 (4) 消息机制
2012-10-29 08:22 1560在 Android 操作系统中存在着消息队列的操作 ... -
Android学习10-----Android组件通信 (3) ActivityGroup
2012-10-26 08:23 2340导航栏在 Android 中的应用是很常见的,前面 ... -
Android学习10-----Android组件通信 (1) Intent
2012-10-24 08:43 2028在一个项目之中,会由多个 Activity ... -
Android判断是否有网络连接
2013-04-25 16:34 1447Android中判断有时候因为功能的需求,需要判断是否有网络 ...
相关推荐
`android-support-v4`库中的BroadcastReceiver和PendingIntent类提供了与原生API相匹配的功能,使得开发者能在低版本的Android上使用这些组件进行事件监听和跨组件通信。 **Preference支持** Preference类是用于...
1. Android Activity生命周期,特别是`onCreate()`方法的实现。 2. BroadcastReceiver的使用,包括如何创建、注册和接收广播。 3. 如何通过BroadcastReceiver来监听和响应退出消息,结束Activity。 4. 动态注册...
#### 二、Activity生命周期详解 Activity是Android应用程序中最常见的组件之一,其生命周期包括多个状态: - **Activity的基本状态**: - **Active状态**:运行在屏幕的前台,接受用户操作。 - **Paused状态**:...
理解Activity的通信方式和生命周期变化是每个Android开发者必须掌握的基础知识。在本篇内容中,我们将深入探讨Activity之间的通信以及它们在不同操作下的生命周期变化,并讨论如何传递回传参数。 首先,我们来看...
以下是关于Activity生命周期的详细讲解。 1. Activity的状态 Activity有四种主要状态,它们决定了Activity在何时执行特定的操作: - **运行态(Running)**:当Activity位于栈顶且可见时,它处于运行状态,可以与...
Android组件主要包括Activity、Service、BroadcastReceiver和ContentProvider,它们各自有特定的生命周期和职责。在实际开发中,我们常常需要在这些组件之间共享数据和进行通信,这通常是通过Intent、Bundle、静态...
当我们谈论“android生命周期管理:启动一个Activity”,我们关注的是如何启动Activity以及在生命周期中的关键回调函数。 1. 了解生命周期回调函数 Activity的生命周期由一系列的回调方法组成,包括onCreate(), ...
本篇将深入探讨Activity和Service的生命周期以及如何利用Android Interface Definition Language (AIDL)进行进程间通信。 Activity是Android应用程序的用户界面,它负责与用户交互。Activity的生命周期分为几个关键...
本篇文章将详细探讨Activity生命周期的各个阶段及其转换,以及如何在这些阶段中适当地管理资源。 一、Activity生命周期的基本阶段 1. 创建(Creation): - **onCreate()**:Activity的起点,系统在此方法中初始...
- 首先,开发者应熟悉 Android 开发的基本概念,如 Activity 生命周期、Intent 机制等。 - 接着,通过阅读 `frameworks/base` 下的源码,了解系统服务如何与应用程序交互。 - 然后,研究 `system/core`,理解 ...
Activity生命周期是Android开发中至关重要的一环,因为它决定了应用如何响应用户操作和系统事件。理解Activity的生命周期对于编写高效、稳定且用户体验良好的应用至关重要。 Activity的生命周期由多个关键状态组成...
11. **Android Jetpack组件**:Jetpack是一套可提高开发效率的库,包括Room(数据库)、Lifecycle(组件生命周期)、Paging(分页)等,源代码可能会使用到这些组件。 12. **Gradle构建系统**:所有Android项目都...
1. **基本组件与生命周期**:Android应用由Activity、Service、BroadcastReceiver、ContentProvider等组件构成。通过源码,我们可以学习这些组件的创建、启动、暂停、恢复、销毁等生命周期管理,理解它们之间的交互...
Android应用由多个组件构成,如活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(ContentProvider)。每个组件都有其特定的用途,理解和掌握它们之间的交互方式是构建动态应用的...
可能会深入解释Activity的生命周期与Intent如何影响其状态变化,比如如何通过Intent启动Activity以及在不同Activity间传递数据。 3. Example-3.1 - 这可能是示例代码或案例研究,展示了如何在实际开发中使用Intent...
在Android应用开发中,理解并掌握Android生命周期是至关重要的。Android生命周期是指一个Activity、Service、BroadcastReceiver或...通过持续学习和实践,开发者可以不断提升自己在Android生命周期管理方面的专业技能。
Activity生命周期的理解和掌握对于任何Android开发者来说都是至关重要的。本篇将详细探讨Activity的生命周期,以及如何在毕业设计中有效利用这些知识。 首先,Activity的生命周期包括几个主要状态:初始化、可见、...
每个Fragment都有自己的生命周期,但同时也受到其所在Activity生命周期的影响。 要实现Fragment与Activity之间的通信,我们需要使用一些关键的API方法: 1. **setArguments(Bundle)**:在创建Fragment时,我们可以...
它提供了对应用生命周期、数据存储、网络通信等各个方面的测试支持。在Instrumentation测试中,测试代码和被测试代码一起运行在同一进程中,可以对应用的每一个细节进行深入的检查。 在“android-testing-master”...
### Android四大基本组件及其生命周期详解 #### 一、Android四大基本组件概述 Android四大基本组件是Android应用程序的核心组成部分,它们分别是Activity、Service、ContentProvider和BroadcastReceiver。这四个...