Android核心组件 Activity组件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android核心组件 Activity组件相关的知识,希望对你有一定的参考价值。
1、Activity简介
四大组件之一的Activity组件,在应用中一个Activity可以用来表示一个界面,中文意思也可以理解为“活动”,即一个活动开始,代表Activity组件启动,活动结束,代表一个Activity的生命周期结束。一个android应用必须通过Activity来运行和启动,Activity的生命周期交给系统统一管理。
理解以下四个基本概念,将有助于我们更好的了解Android系统内部机制:
Activity:活动,程序中的界面
Application:应用程序
Activity栈:管理Activity的栈结构
Task:任务
2、Activity状态
在Android中,Activity拥有三个基本状态:
(一)Resumed:一个新Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
(二)Paused:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它依然可见,但它已经失去了焦点故不可与用户交互。
(三)Stoped:当Activity被另外一个Activity覆盖,失去焦点并不可见时处于Stoped状态。
3、Activity生命周期
生命周期方法详解:
官方流程图:
代码清单:生命周期方法测试(MainActivity.java)
1 package com.bothsunny.apps.a31_activity; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 6 import com.orhanobut.logger.Logger; 7 8 public class MainActivity extends AppCompatActivity { 9 10 /** 11 * 当一个Activity创建时会调用该方法,我们可以在该方法中进行组件的初始化工作 12 * 13 * @param savedInstanceState 14 */ 15 @Override 16 protected void onCreate(Bundle savedInstanceState) { 17 super.onCreate(savedInstanceState); 18 setContentView(R.layout.activity_main); 19 Logger.i("MainActivity-onCreate"); 20 } 21 22 /** 23 * 在Activity可见,但还不能进行交互时会调用该方法 24 * 在onCreate之后调用 25 */ 26 @Override 27 protected void onStart() { 28 super.onStart(); 29 Logger.i("MainActivity-onStart"); 30 } 31 32 /** 33 * 当Activity可以交互时调用 34 * 在onStart之后调用,该方法被调用后就表示Activity进入激活状态 35 * resumed状态 36 */ 37 @Override 38 protected void onResume() { 39 super.onResume(); 40 Logger.i("MainActivity-onResume"); 41 } 42 43 /** 44 * 一个从stoped状态的Activity重新被激活时调用 45 * 接着会调用onStart()方法 46 */ 47 @Override 48 protected void onRestart() { 49 super.onRestart(); 50 Logger.i("MainActivity-onRestart"); 51 } 52 53 /** 54 * 当前Activity被另一个Activity覆盖,失去焦点,但还可见,不能交互 55 * 那么此时当前Activity进入paused状态(暂停状态) 56 * 当此状态下Activity重新获取焦点时会再调用onResume()方法 57 */ 58 @Override 59 protected void onPause() { 60 super.onPause(); 61 Logger.i("MainActivity-onPause"); 62 } 63 64 /** 65 * 当前Activity被另一个Activity完全覆盖,不可见且不可交互 66 * 那么此时当前Activity进入了stoped状态(停止状态) 67 * 此状态下的Activity被重新显示时,会调用onRestart()方法 68 */ 69 @Override 70 protected void onStop() { 71 super.onStop(); 72 Logger.i("MainActivity-onStop"); 73 } 74 75 /** 76 * 当前Activity被销毁时调用,表示结束生命周期 77 */ 78 @Override 79 protected void onDestroy() { 80 super.onDestroy(); 81 Logger.i("MainActivity-onDestroy"); 82 } 83 }
4、Activity传递数据
在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中。因此我们需要一种特别的机制帮助我们在Activity之间传递消息。Android中通过Intent对象来表示一条信息,一个Intent对象不仅包含这个消息的目的地,还可以包含消息的内容,这好比一封Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个Intent对象,消息“目的地”是必须的,而内容则是可选项。
以上是关于Android核心组件 Activity组件的主要内容,如果未能解决你的问题,请参考以下文章
❤️Android精进之路-04Android核心组件Activity,必须掌握的知识点(Activity是什么,生命周期是怎样的)❤️