安卓app开发-06-Activity的生命周期

本文深入讲解Android应用中Activity的生命周期,包括从onCreate到onDestroy的各个阶段,以及如何通过回调函数正确管理资源和状态。通过一个简单的HelloWorld示例,演示了Activity生命周期的典型流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                       

安卓app开发-06-Activity的生命周期

  • 创建安卓项目之后,会看到一个 HelloWorld 的例子。同时也会看到一个 MainActivity.java 的文件
  • MainActivity.java 文件是默认的主页面,主页面的内容为一个TextView控件(HelloWorld!) ,它定义 MainActivity 布局的目的、功能,并包含各种方法的实际代码

在这里插入图片描述

  • 上图代码:
package com.example.androidtest; import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.Window; public class MainActivity extends Activity {        private String tag = "MainActivity";     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main); //设置一个View模板        Log.d(tag, "In the onStart() event");   }        @Override    public void onStart() {          super.onStart();          Log.d(tag, "In the onStart() event");      }          public void onRestart() {          super.onRestart();          Log.d(tag, "In the onRestart() event");      }        public void onResume() {          super.onResume();          Log.d(tag, "In the onResume() event");      }        public void onPause() {          super.onPause();          Log.d(tag, "In the onPause() event");      }        public void onStop() {          super.onStop();          Log.d(tag, "In the onStop() event");      }        public void onDestroy() {          super.onDestroy();          Log.d(tag, "In the onDestroy() event");      }       @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    }
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

activity 介绍

  • 一个应用程序通常由多个 activities 组成,他们通常是松耦合关系
  • 通常一个应用程序中的 activity 被指定为 "main"activity,当第一次启动应用程序的时候呈现给用户的那个 activity。每一个 activity 然后可以启动另一个 activity 为了完成不同的动作。每一次一个activity 启动,前一个 activity 就停止了,但是系统保留 activity 在一个栈上(“back stack”)。当一个新 activity 启动,它被推送到栈顶,取得用户焦点。Back Stack 符合简单“后进先出”原则,所以,当用户完成当前 activity 然后点击 back 按钮,它被弹出栈(并且被摧毁),然后之前的activity恢复。
  • 当一个 activity 因新的 activity 启动而停止,它被通知这种状态转变通过 activity 的生命周期回调函数。有许多回调函数一个 activity 可能会收到,源于它自己的状态变化-无论系统创建它、停止它、恢复它、摧毁它-并且每个回调提供你完成适合这个状态的指定工作的机会。
  • 例如,当停止的时候,你的activity应该释放任何大的对象,例如网络数据库连接。当activity恢复,你可以重新获得必要的资源和恢复被中断的动作。这些状态转换都是activity的生命周期的部分。

测试

  • 我们启动这个 Hello World 程序,观察日志:我们可以观察到,启动的时候,首先 onCreate() 创建一个页面布局,然后当用户可见的时候,调用 onStart() ,当可以和用户交互的时候,调用 onResume()
    在这里插入图片描述
  • 当我退出这个程序,日志打印的顺序是:onPause() ,onStop() ,onDestroy()。也就说,先暂停,然后停止,然后销毁
    在这里插入图片描述

总结:

  • onCreate()  ——  当Activity第一次创建的时候被调用。一般每个
  • Activity都需要有一个onCreate()函数
  • onStart()  ——  当Activity对用户可见的时候被调用。
  • onResume()  ——  当Activity开始和用户交互的时候被调用。
  • onPause()  ——  正在运行的Activity马上要被暂停的时候被调用,此时,在这之前的Activity被重新获取。
  • onStop()  ——  当Activity不在对用户可见的时候被调用。
  • onDestroy() —— 当被销毁的时候调用

生命周期图:

在这里插入图片描述

更多文章链接:安卓app开发

           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值