back >>
1. Activity生命周期的七个方法
* 启动一个activity,Android系统会依次调用onCreate、onStart、onResume方法,这三个方法调用完成后,该activity可以使用了;
* 新启动的Activity是否完全遮盖第一个Activity
- 完全遮盖
从本activity启动另外一个activity2时,会先调用本onPause方法,再依次调用第二个activity2的onCreate、onStart、onResume方法,之后会调用第一个activity的onStop方法;
从activity2点击返回按钮时,会先调用第二个activity2的onPause方法,之后会调用第一个activity的onReStart、
onStart、OnResume方法,之后会调用第二个activity2的onStop方法和onDestroy方法;
- 没有完全遮盖,新启动的activity是对话框形式时
从本activity启动另外一个activity2时,会先调用本onPause方法,再依次调用第二个activity2的onCreate、onStart、onResume方法(不再调用第一个activity的onStop方法
);
从activity2点击返回按钮时,会先调用第二个activity2的onPause方法,之后会调用第一个activity的onResume方法;
onCreate方法
- Activity第一次被创建时,会调用该方法
- 功能: 设置布局文件,绑定监听器
o
nStart方法
- Activity可见时,会调用onStart方法
onResume方法
- 用户可以获取当前activity焦点的时,会调用onResume方法
onPause方法 此时可能会被杀掉
- 当前Activity被新的Activity遮挡时调用,onPause方法会保存当前Activity中的数据
onRestart方法
- 该Activity中没有被Destroy时,再调用该Activity时会调用该方法
onStop方法
此时可能会被杀掉
- 当前activity完全不可见时(比如被另外一个activity遮挡住),会调用onStop此方法,此时当前activity停止
onDestroy方法
此时可能会被杀掉
- 销毁
2. Task基本概念
* Task就是盛放Activity的栈,遵循先进后出的原则,其主要作用就是把不同应用程序的组件(Activity)组织在一起
* Task的运行过程
- 应用程序启动运行第一个Activity之后,会将该Activity对象压入到Stack中
- 同样,启动第二个Activity时,该Activity对象也会被压入Stack中
- 点击back按钮时,Stack中最顶层的Activity会被弹出栈
- 应用程序显示的永远是栈顶的元素
3. 对话框风格的Activity
* 在AndroidManifest.xml文件中配置Activity如下
<!-- 对话框控件 -->
<activity android:name="SecondActivity"
android:label="@string/second_app"
android:theme="@android:style/Theme.Dialog"
>
</activity>
4. 代码示例(见附件)
* FirstActivity.java
package mars.activity05;
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 FirstActivity extends Activity {
/** Called when the activity is first created. */
private Button myButton;
@Override
public void onCreate(Bundle savedInstanceState) {
System.out.println("FirstActivity ---> onCreate ");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button) findViewById(R.id.myButton);
myButton.setOnClickListener(new ButtonListener());
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
System.out.println("FirstAcvity --->onDestory");
super.onDestroy();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
System.out.println("FirstAcvity --->onPause");
super.onPause();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
System.out.println("FirstAcvity --->onRestart");
super.onRestart();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
System.out.println("FirstAcvity --->onResume");
super.onResume();
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
System.out.println("FirstAcvity --->onStart");
super.onStart();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
System.out.println("FirstAcvity --->onStop");
super.onStop();
}
class ButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(FirstActivity.this, SecondActivity.class);
FirstActivity.this.startActivity(intent);
}
}
}
* SecondActivity.java
package mars.activity05;
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 secondButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
System.out.println("SecondActivity--->onCreate");
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
secondButton = (Button)findViewById(R.id.secondButton);
secondButton.setOnClickListener(new ButtonListener());
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
System.out.println("SecondActivity--->onDestory");
super.onDestroy();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
System.out.println("SecondActivity--->onPause");
super.onPause();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
System.out.println("SecondActivity--->onRestart");
super.onRestart();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
System.out.println("SecondActivity--->onResume");
super.onResume();
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
System.out.println("SecondActivity--->onStart");
super.onStart();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
System.out.println("SecondActivity--->onStop");
super.onStop();
}
class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(SecondActivity.this, FirstActivity.class);
SecondActivity.this.startActivity(intent);
}
}
}
* AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mars.activity05"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FirstActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--对话框格式的Activity-->
<activity android:name=".SecondActivity"
android:label="SecondActivity"
android:theme="@android:style/Theme.Dialog"/>
</application>
<uses-sdk android:minSdkVersion="4" />
</manifest>
分享到:
相关推荐
例如,你可以创建一个过滤器,只显示与你的Activity生命周期方法相关的信息,便于跟踪Activity的状态变化。 总的来说,理解并熟练掌握Activity的生命周期和LogCat的使用是Android应用开发的基础,对于构建稳定、...
Activity生命周期的理解和管理对于编写高效、响应式的Android应用至关重要。本实验旨在深入探索Activity的生命周期,并通过实践来理解各个阶段的工作流程以及它们之间的转换。 首先,我们来看一下Activity的生命...
6. **销毁(Destroyed)**: 当Activity不再需要,或者系统资源紧张时,系统会调用`onDestroy()`,这是Activity生命周期的最后一个阶段。开发者可以在此释放资源,执行清理工作。 在Activity的生命周期中,还有一些...
1. 掌握activity组件生命周期函数的用法 2. 掌握使用intent实现activity之间的跳转 3. 掌握在manifest文中定义多个activity,并指定Launcher Activity 4. 掌握Activity的启动模式,和启动模式所对应的Activity和...
一、Activity生命周期概述 Activity的生命周期主要由七个主要方法组成,它们分别是onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()和onRestart()。每个方法对应Activity的不同阶段,理解这些...
总之,掌握Activity生命周期是Android开发的基础,它涉及到应用的响应性、效率和稳定性。开发者需要根据应用的需求灵活运用生命周期方法,确保在不同场景下都能提供优质的用户体验。通过深入学习和实践,我们可以更...
这篇博客"Android开发 - Activity 初步"可能详细介绍了Activity的基础知识,包括它的概念、生命周期以及如何在代码中创建和管理Activity。下面将深入探讨Activity的相关知识点。 **Activity的概念** Activity是...
在安卓应用开发中,框架工具类是开发者...总之,熟悉并掌握Activity生命周期、线程优先级、异常销毁以及任务栈是Android开发的基本功。通过深入学习和实践,开发者可以编写出更加高效、稳定且用户体验优良的安卓应用。
在Android开发过程中,Activity作为四大组件之一,是构成应用程序的基本单元。它负责处理与用户交互相关的界面展示工作。为了更好地理解和掌握Activity的工作机制,本文将详细介绍Android Activity的生命周期及其...
Activity生命周期是Android开发中的核心概念,理解并掌握这一生命周期对于创建稳定、高效的智能家居应用至关重要。Activity代表了一个用户可以看到并与其交互的独立屏幕。每个Activity都是一个独立的类,继承自...
理解 Activity 生命周期是 Android 开发的基础,掌握了 Activity 生命周期,可以更好地开发 Android 应用程序。 在实际开发中,我们可以使用 Log debugging 来追踪 Activity 的生命周期,可以在每个生命周期方法中...
本示例项目“Android activity生命周期示例”旨在帮助开发者深入理解Activity的生命周期及其各个阶段,这对于优化用户体验和资源管理至关重要。 Activity的生命周期包括以下几个主要状态: 1. **创建(Created)**...
在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity(Activity1)跳转到另一个Activity(Activity2),然后再返回到原Activity...
Android Studio提供了多种工具帮助开发者调试Activity生命周期。例如: 1. **Android Profiler**:可以实时监控Activity的生命周期状态变化,同时分析内存、CPU和网络使用情况。 2. **Logcat**:通过打印日志,可以...
在Android应用开发中,理解并妥善管理Activity和Fragment的生命周期是至关重要的。为了帮助开发者更有效地跟踪和控制这些组件的状态,出现了一类被称为"生命周期监听工具库"的辅助工具,如"Android-Android生命周期...
实验一 第一个Android程序和Activity生命周期。实验要求: 1.用工程向导生成第一个Android程序,并在模拟器上运行 注意在新建应用的选择SDK版本时选API 18 2.熟悉Android应用程序的基本文件结构 3.了解使用开发环境...
总之,深入理解Activity生命周期和其背后的源码逻辑,对于编写高效、响应迅速且用户体验优秀的Android应用至关重要。开发者应熟练掌握这些知识点,以便在设计和调试应用时能得心应手。通过实践和分析ActivityDemo,...
7. **onDestroy()**: 这是Activity生命周期的最后阶段,当系统决定销毁Activity时调用。通常是因为系统需要回收资源,或者Activity自己调用了finish()方法。 理解Activity的生命周期对于优化应用性能至关重要。例如...
### Android启动及Activity生命周期分析 在Android开发过程中,理解应用程序如何启动及Activity的生命周期是非常重要的。这不仅有助于我们更好地管理程序的状态,还能帮助我们在遇到内存泄漏等问题时进行快速定位和...