Android核心组件 Activity组件

智者不为愚者谋,勇者不为怯者死。这篇文章主要讲述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生命周期

【Android核心组件 Activity组件】生命周期方法详解:

Android核心组件 Activity组件

文章图片

 
官方流程图: 
 
Android核心组件 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 16protected void onCreate(Bundle savedInstanceState) { 17super.onCreate(savedInstanceState); 18setContentView(R.layout.activity_main); 19Logger.i("MainActivity-onCreate"); 20} 21 22/** 23* 在Activity可见,但还不能进行交互时会调用该方法 24* 在onCreate之后调用 25*/ 26@Override 27protected void onStart() { 28super.onStart(); 29Logger.i("MainActivity-onStart"); 30} 31 32/** 33* 当Activity可以交互时调用 34* 在onStart之后调用,该方法被调用后就表示Activity进入激活状态 35* resumed状态 36*/ 37@Override 38protected void onResume() { 39super.onResume(); 40Logger.i("MainActivity-onResume"); 41} 42 43/** 44* 一个从stoped状态的Activity重新被激活时调用 45* 接着会调用onStart()方法 46*/ 47@Override 48protected void onRestart() { 49super.onRestart(); 50Logger.i("MainActivity-onRestart"); 51} 52 53/** 54* 当前Activity被另一个Activity覆盖,失去焦点,但还可见,不能交互 55* 那么此时当前Activity进入paused状态(暂停状态) 56* 当此状态下Activity重新获取焦点时会再调用onResume()方法 57*/ 58@Override 59protected void onPause() { 60super.onPause(); 61Logger.i("MainActivity-onPause"); 62} 63 64/** 65* 当前Activity被另一个Activity完全覆盖,不可见且不可交互 66* 那么此时当前Activity进入了stoped状态(停止状态) 67* 此状态下的Activity被重新显示时,会调用onRestart()方法 68*/ 69@Override 70protected void onStop() { 71super.onStop(); 72Logger.i("MainActivity-onStop"); 73} 74 75/** 76* 当前Activity被销毁时调用,表示结束生命周期 77*/ 78@Override 79protected void onDestroy() { 80super.onDestroy(); 81Logger.i("MainActivity-onDestroy"); 82} 83 }

  4、Activity传递数据
在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中。因此我们需要一种特别的机制帮助我们在Activity之间传递消息。Android中通过Intent对象来表示一条信息,一个Intent对象不仅包含这个消息的目的地,还可以包含消息的内容,这好比一封Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个Intent对象,消息“目的地”是必须的,而内容则是可选项。 


    推荐阅读