理解Activity生命周期,有助于在开发软件的过程正确处理逻辑。
仅供自己理解参考
完美解说
http://blog.csdn.net/android_tutor/article/details/5772285
package com.test;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
/**
*
* @author xxq
*
*/
// 一个Activity一般有如下四个状态
// 1.如果一个Activity在屏幕是可视的(在Activity栈顶),那么它是活跃运行的
// 2.如果一个Activity在屏幕上仍可视但是已失去焦点(如一个不是全屏显示的Activity占据Activity栈顶),那么它将转为pause状态,一个
// paused Activity仍然是存活着(它持有所有信息,并且仍受window manager管理)
// 3.如果一个Activity完全被另外一个Activity遮蔽(即前者对用户完全不可视),那么它会转为stop状态(它仍持有所有信息),但是该Activity
// 有可能在内存告急情况下会被杀死
// 4.如果一个Activity处于stop或者是pause状态,那么系统能够移除该Activity,通过请求Activity自行结束或直接杀死该进程
// 如何停止在pause状态,不让其进入stop状态,这点没有实现
// 操作一: 启动该程序,oncreate -> onstart ->onresume
// 操作二: 按Home键, onpause -> onstop
// 操作三: 长按Home键,出现最近运行程序,点击Home键,然后点击该程序 onrestart -> onstart -> onresume
public class Main extends Activity {
private final static String TAG = "Main";
EditText editText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(TAG, "onCreate");
}
// 当Main对用户可见时被调用
protected void onStart() {
Log.d(TAG, "onStart");
super.onStart();
}
// 当Main开始与用户交互时被调用,此时Main位于
// 其中Activity的栈顶,onPause()方法往往在onResume()滞后被调用
protected void onResume() {
Log.d(TAG, "onResume");
super.onResume();
}
// 当要恢复先前的Activity时被调用(或按Home,BackSpace),通常在这里实现数据的持久化
// 这个函数要尽可能快的返回,要恢复的Activity在返回onPause()才能被调用
protected void onPause() {
Log.d(TAG, "onPause");
super.onPause();
}
// 当Main不再对用户可视被调用,可能的原因1.恢复先前Activity 2.按Home 3.按Back键关闭软件
protected void onStop() {
Log.d(TAG, "onStop");
super.onStop();
}
// 恢复之前停止(onStop())的Activity会被调用
protected void onRestart() {
Log.d(TAG, "onRestart");
super.onRestart();
}
// 当Activity被destroy最后一个被调用的方法。
// 1.activity执行完了,显式调用finish()方法
// 2.系统暂时破坏这个Activity的实例来释放空间
// 3.人为主动关闭该软件
protected void onDestroy() {
// Log.d(TAG, isFinishing() + "");
Log.d(TAG, "onDestroy");
super.onDestroy();
}
}
分享到:
相关推荐
Android官方activity-lifecycle生命周期例子,参考网页: http://developer.android.com/training/basics/activity-lifecycle/index.html 方便了解Activity生命周期,提供了非常形象的说明。生动讲解。可以结合官网...
在Android应用开发中,Activity是用户界面的基本单元,它的生命周期管理是开发者必须深入理解的关键概念。本文将详细探讨Android Activity的生命周期,以及如何通过源码分析和使用工具进行深入研究。 Activity的...
### Activity的生命周期(LifeCycle) #### 一、Activity在Android中的地位 在Android开发中,Activity作为四大组件之首,其重要性不言而喻。四大组件包括:Activity(负责界面控制)、Service(用于维持一个进程...
android-lifecycle, Android Activity/fragment 生命周期的图表 完整的Android fragment & Activity 生命周期尝试了解各种各样的片段之后,我做了一些研究并将完整的Android Activity/fragment 生命周期结合起来。...
为了更好地理解和调试Activity生命周期,开发者可以利用Android Studio提供的工具,如Android Profiler和Lifecycle-aware components。Android Profiler可以实时监控Activity的生命周期变化,帮助定位潜在问题。...
在Android应用开发中,Activity是用户界面的主要载体,它的生命周期管理是开发者必须深入理解的关键概念。"activity-lifecycle"这个主题涵盖了Activity从创建到销毁的整个过程,包括各种状态转换和回调方法。以下是...
1. 掌握activity组件生命周期函数的用法 2. 掌握使用intent实现activity之间的跳转 3. 掌握在manifest文中定义多个activity,并指定Launcher Activity 4. 掌握Activity的启动模式,和启动模式所对应的Activity和task...
总之,"Activity lifecycle demo"是学习Android开发中必不可少的一部分,通过实践这个示例,开发者可以更好地理解和利用Activity的生命周期,提高应用的质量和性能。同时,掌握Android Studio的使用技巧也是提升开发...
在Android应用开发中,Activity是用户界面的主要组件,它的生命周期是开发者必须深入理解的关键概念。本文将详尽探讨Android Activity的生命周期,以及如何在Java编程中有效地管理它。 Activity生命周期包含了一...
因此,Android提供了生命周期感知组件,如Lifecycle和LiveData,它们简化了生命周期管理。 LiveData是一种观察者模式的实现,它是Android架构组件的一部分,能够感知其生命周期的所有者(如Activity或Fragment)。...
Android生命周期演示展示android活动生命周期的android应用演示。 有两个活动, MainActivity.java和secondActivity.java 。 使用logcat和log类,当两个活动中的每个回调都被调用时,此应用向用户显示。 这两个活动...
在努力弄清楚各个部分如何组合之后,我进行了一些研究,并整理了完整的Android Activity / Fragment生命周期图。 它具有两个并行的生命周期(活动和片段),它们按时间垂直排列。 生命周期阶段将按照活动和片段的...
演示了3个Activity在相互转换中的生命周期及事件。 其中Tag time是为了手动分割Log的现实,方便查看阶段性的信息。 安装到手机上需要打开USB调试模式。
在Android应用开发中,"生命周期"是至关重要的概念,它涉及到Activity、Service、BroadcastReceiver以及Fragment等组件的行为和状态变化。这些组件的生命周期由系统控制,开发者需要理解并正确处理各个生命周期方法...
Lifecycle库是由Android Architecture Components(AAC)的一部分,它允许开发者声明式地观察Activity或Fragment的生命周期状态。通过使用LiveData和ViewModel等AAC组件,Lifecycle库使得UI与数据层之间的交互更加...
RxLifecycle2则是一个帮助管理RxJava订阅与Android组件(如Activity或Fragment)生命周期的库。它可以自动处理订阅的生命周期,确保在网络请求完成或者组件销毁时取消订阅,防止内存泄漏和不必要的网络请求。 要...
在本篇文章中,我们将深入探讨Activity的生命周期,并通过使用Android Studio和Log.i进行实际的跟踪实践。 Activity的生命周期分为几个关键状态,包括:`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `...
在Android应用开发中,活动(Activity)是用户交互的主要接口,它承载了用户界面和...在实际开发中,可以利用Android Studio提供的Activity生命周期调试工具,如Lifecycle Monitor,来直观地观察和分析活动的状态变化。
在Android应用开发中,Activity是用户界面的主要载体,它的生命周期管理是开发者必须深入理解的关键概念。"android生命周期demo"是一个官方示例,旨在帮助开发者直观地理解Activity在不同操作下的状态变化,以及如何...
### Activity生命周期详解 ...总结来说,理解`Activity`的生命周期对于编写高效稳定的Android应用程序至关重要。通过合理利用各个生命周期方法,开发者可以确保应用在不同场景下的良好表现和用户体验。