Android Activity原理以及其子类描述

简介

         Activity是Android应用程序组件,实现一个用户交互窗口,我们可以实现布局填充屏幕,也可以实现悬浮窗口。一个app由很多个Actvitiy组合而成,它们之间用intent-filter区别主次关系。
下面将简单介绍Activity以及其子类和其它界面。

详情
1、Activity

Android Activity原理以及其子类描述_第1张图片

2、ListActivity

Android Activity原理以及其子类描述_第2张图片


3、ActivityGroup

Android Activity原理以及其子类描述_第3张图片


4、TabActivity

Android Activity原理以及其子类描述_第4张图片


5、PreferenceActivity

Android Activity原理以及其子类描述_第5张图片


6、FragmentActivity 

Android Activity原理以及其子类描述_第6张图片


7、ListFragment

Android Activity原理以及其子类描述_第7张图片


8、NativeActivity

Android Activity原理以及其子类描述_第8张图片


9、ExpandableListActivity

Android Activity原理以及其子类描述_第9张图片


10、LauncherActivity

Android Activity原理以及其子类描述_第10张图片


11、AliasActivity
Android Activity原理以及其子类描述_第11张图片


12、PreferenceFragment
Android Activity原理以及其子类描述_第12张图片

13、ActivityCompat
Android Activity原理以及其子类描述_第13张图片


14、ActivityUnitTestCase
Android Activity原理以及其子类描述_第14张图片


Activity 管理
目前涉及到Activity管理的类就两个:1、LocalActivityManager  2、ActivityManager。它们分别做了什么呢?

Android Activity原理以及其子类描述_第15张图片


Android Activity原理以及其子类描述_第16张图片


生命周期

Android Activity原理以及其子类描述_第17张图片


这里有三个比较关键的生命周期。

从最初调用onCreate(Bundle)到最终调用onDestroy()称为完整生命周期。Activity会在onCreate()进行所有“全局”状态的设置,在onDestroy()中释放所有持有的资源。举个例子,如果它有一个从网络上下载数据的后台线程,那他可能就会在onCreate()中创建这个线程并在onDestroy()中停止这个线程。

从activity调用onStart()开始,到调用对应的onStop()为止称为可见生命周期。在这段时间内用户可以在屏幕上看到这个activity,尽管并不一定是在前景也不一定可以和用户交互。在这两个方法之间你可以维护那些activity在用户显示时所需的资源。举个例子来说,你可以在onStart()中注册一个IntentReceiver来监控那些可以对你的UI产生影响的环境改变,当你的UI不继续在用户面前显示时你可以在onStop()中注销这个IntentReceiver。每当activity在用户面前显示或者隐藏时都会调用相应的方法,所以onStart()和onStop()方法在整个生命周期中可以多次被调用。

从activity调用onResume()开始,到调用对应的onPause()为止称为前景生命周期,这段时间activity处于其他所有activity的前面,且与用户交互。一个activity可以经常在resumed和paused状态之间转换——例如手机进入休眠时、activity的结果返回时、新的intent到来时——所以这两个方法中的代码应该非常的简短。

下面的Activity方法定义了activity完整的生命周期。他们全都是hook方法,你可以重载这些方法从而使activity在状态改变时执行你所期望的操作。所有activity都应该实现自己的onCreate(Bundle)方法来进行初始化设置;大部分还应该实现onPause()方法提交数据的修改并且准备终止与用户的交互。尽管我们计划在系统中添加更多的工具来管理应用,现在大多activity仍需要实现onFreeze()并且在onCreate(Bundle)中执行对应的状态恢复。其他的方法可以在需要时进行实现,当实现这些方法的时候需要注意的是一定要调用父类中的对应方法。

你可能感兴趣的:(Android Activity原理以及其子类描述)