`

Android Activity lifecycle 生命周期

阅读更多
理解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();
    }
}


0
0
分享到:
评论

相关推荐

    Android官方activity-lifecycle生命周期例子

    Android官方activity-lifecycle生命周期例子,参考网页: http://developer.android.com/training/basics/activity-lifecycle/index.html 方便了解Activity生命周期,提供了非常形象的说明。生动讲解。可以结合官网...

    Android Activity 生命周期(lifecycle)的研究

    在Android应用开发中,Activity是用户界面的基本单元,它的生命周期管理是开发者必须深入理解的关键概念。本文将详细探讨Android Activity的生命周期,以及如何通过源码分析和使用工具进行深入研究。 Activity的...

    Activity的生命周期(LifeCycle)

    ### Activity的生命周期(LifeCycle) #### 一、Activity在Android中的地位 在Android开发中,Activity作为四大组件之首,其重要性不言而喻。四大组件包括:Activity(负责界面控制)、Service(用于维持一个进程...

    android-lifecycle, Android Activity/fragment 生命周期的图表.zip

    android-lifecycle, Android Activity/fragment 生命周期的图表 完整的Android fragment & Activity 生命周期尝试了解各种各样的片段之后,我做了一些研究并将完整的Android Activity/fragment 生命周期结合起来。...

    Android中的生命周期LifeCycle

    为了更好地理解和调试Activity生命周期,开发者可以利用Android Studio提供的工具,如Android Profiler和Lifecycle-aware components。Android Profiler可以实时监控Activity的生命周期变化,帮助定位潜在问题。...

    activity-lifecycle

    在Android应用开发中,Activity是用户界面的主要载体,它的生命周期管理是开发者必须深入理解的关键概念。"activity-lifecycle"这个主题涵盖了Activity从创建到销毁的整个过程,包括各种状态转换和回调方法。以下是...

    实验一Activity的生命周期及Intent.zip

    1. 掌握activity组件生命周期函数的用法 2. 掌握使用intent实现activity之间的跳转 3. 掌握在manifest文中定义多个activity,并指定Launcher Activity 4. 掌握Activity的启动模式,和启动模式所对应的Activity和task...

    Activity生命周期demo

    总之,"Activity lifecycle demo"是学习Android开发中必不可少的一部分,通过实践这个示例,开发者可以更好地理解和利用Activity的生命周期,提高应用的质量和性能。同时,掌握Android Studio的使用技巧也是提升开发...

    Android-Lifecycle:探索 Android Activity 生命周期

    在Android应用开发中,Activity是用户界面的主要组件,它的生命周期是开发者必须深入理解的关键概念。本文将详尽探讨Android Activity的生命周期,以及如何在Java编程中有效地管理它。 Activity生命周期包含了一...

    Android-Android轻松实现生命周期绑定

    因此,Android提供了生命周期感知组件,如Lifecycle和LiveData,它们简化了生命周期管理。 LiveData是一种观察者模式的实现,它是Android架构组件的一部分,能够感知其生命周期的所有者(如Activity或Fragment)。...

    android-activity-lifecycle-demo:一个Android应用程序,展示何时进行各种活动生命周期回调

    Android生命周期演示展示android活动生命周期的android应用演示。 有两个活动, MainActivity.java和secondActivity.java 。 使用logcat和log类,当两个活动中的每个回调都被调用时,此应用向用户显示。 这两个活动...

    android-lifecycle:Android Activity Fragment生命周期图

    在努力弄清楚各个部分如何组合之后,我进行了一些研究,并整理了完整的Android Activity / Fragment生命周期图。 它具有两个并行的生命周期(活动和片段),它们按时间垂直排列。 生命周期阶段将按照活动和片段的...

    Android Activity 生命周期演示工具

    演示了3个Activity在相互转换中的生命周期及事件。 其中Tag time是为了手动分割Log的现实,方便查看阶段性的信息。 安装到手机上需要打开USB调试模式。

    生命周期LifeCycle

    在Android应用开发中,"生命周期"是至关重要的概念,它涉及到Activity、Service、BroadcastReceiver以及Fragment等组件的行为和状态变化。这些组件的生命周期由系统控制,开发者需要理解并正确处理各个生命周期方法...

    Android-Android生命周期监听工具库

    Lifecycle库是由Android Architecture Components(AAC)的一部分,它允许开发者声明式地观察Activity或Fragment的生命周期状态。通过使用LiveData和ViewModel等AAC组件,Lifecycle库使得UI与数据层之间的交互更加...

    Android-rxjava2retrofit2rxlifecycle2有生命周期感知的网络请求框架封装

    RxLifecycle2则是一个帮助管理RxJava订阅与Android组件(如Activity或Fragment)生命周期的库。它可以自动处理订阅的生命周期,确保在网络请求完成或者组件销毁时取消订阅,防止内存泄漏和不必要的网络请求。 要...

    Activity的生命周期

    在本篇文章中,我们将深入探讨Activity的生命周期,并通过使用Android Studio和Log.i进行实际的跟踪实践。 Activity的生命周期分为几个关键状态,包括:`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `...

    android活动生命周期

    在Android应用开发中,活动(Activity)是用户交互的主要接口,它承载了用户界面和...在实际开发中,可以利用Android Studio提供的Activity生命周期调试工具,如Lifecycle Monitor,来直观地观察和分析活动的状态变化。

    android生命周期demo

    在Android应用开发中,Activity是用户界面的主要载体,它的生命周期管理是开发者必须深入理解的关键概念。"android生命周期demo"是一个官方示例,旨在帮助开发者直观地理解Activity在不同操作下的状态变化,以及如何...

    Activity生命周期详解

    ### Activity生命周期详解 ...总结来说,理解`Activity`的生命周期对于编写高效稳定的Android应用程序至关重要。通过合理利用各个生命周期方法,开发者可以确保应用在不同场景下的良好表现和用户体验。

Global site tag (gtag.js) - Google Analytics