理解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-lifecycle, Android Activity/fragment 生命周期的图表 完整的Android fragment & Activity 生命周期尝试了解各种各样的片段之后,我做了一些研究并将完整的Android Activity/fragment 生命周期结合起来。...
Android四大组件之首的Activity的生命周期介绍
NULL 博文链接:https://qdsx.iteye.com/blog/869691
1. 掌握activity组件生命周期函数的用法 2. 掌握使用intent实现activity之间的跳转 3. 掌握在manifest文中定义多个activity,并指定Launcher Activity 4. 掌握Activity的启动模式,和启动模式所对应的Activity和task...
Android生命周期演示展示android活动生命周期的android应用演示。 有两个活动, MainActivity.java和secondActivity.java 。 使用logcat和log类,当两个活动中的每个回调都被调用时,此应用向用户显示。 这两个活动...
在努力弄清楚各个部分如何组合之后,我进行了一些研究,并整理了完整的Android Activity / Fragment生命周期图。 它具有两个并行的生命周期(活动和片段),它们按时间垂直排列。 生命周期阶段将按照活动和片段的...
activity 生命周期详解http://blog.csdn.net/u011726984/article/details/49361345 配合此文风味更佳
演示了3个Activity在相互转换中的生命周期及事件。 其中Tag time是为了手动分割Log的现实,方便查看阶段性的信息。 安装到手机上需要打开USB调试模式。
Android-生命周期
谷歌官方的Activity lifecycle demo,原始是Eclipse的,已经转换为了Android Studio版本,6.0亲测可用。
#Android Lifecycle如果您不熟悉android活动中的生命周期概念,请。 当您开发具有许多类的真实世界应用程序时,很有可能在活动的生命周期事件发生时需要做一些事情。 例如,在发生“销毁”事件时释放一些资源或从...
Android Activity 和 Fragment 生命周期 了解 Android Activity 和 Fragment 生命周期。 每个生命周期回调方法在回调方法执行的开始和结束时都有一个日志消息输出。 活动和片段的生命周期都被跟踪。 有用的快捷键 ...
android_activity_lifecycle android活动生命周期演示
Android_Activity_Lifecycle Android活动生命周期的简短介绍
来自官网的生命周期demo。通过activity之间的跳转开始和结束说明生命周期
演示Android Activity的完整的生命周期运行轨迹,以及在各个Activity之间进行切换时的运行情况
Android Java原始码AndroidLifecycleActivity 此源代码提供了Android Activity Lifecycle的示例。 ##常见问题解答/联系方式/问题解答Mohammad Nurdin bin Norazan
如何绑定页面生命周期(一)-基于Android Architecture Components的Lifecycle实现Lifecycle是Android Architecture Components(之后简称AAC)的一个组件,用于将系统组件(Activity、Fragment等等)的生命周期分离...
LifeCycleProjectandroid LifeCycle 使用说明可以查看个人简书:前言LifeCycle是Android官方提供的组件,可见地址:Lifecycle 是一个类,它持有关于组件(如 Activity 或 Fragment)生命周期状态的信息,并且允许...