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是什么,生命周期是怎样的)❤️

Android基础之四大组件---Activity

activity的理解

Android的四大组件是哪些,它们的作用

Activity的生命周期

Android核心组件 Service