2024年3月31日发(作者:)

Android之Activity总结

一、什么是Activity

Activity 是用户接口程序,原则上它会提供给用户一个交互式的接口功能。它是 android

应用程序的基本功能单元。Activity 本身是没有界面的。所以activity类创建了一个窗口,

开发人员可以通过setContentView(View)接口把UI放到activity创建的窗口上,当

activity指向全屏窗口时,也可以用其他方式实现:作为漂浮窗口(通过windowIsFloating

的主题集合),或者嵌入到其他的activity(使用ActivityGroup)。activity是单独的,

用于处理用户操作。几乎所有的activity都要和用户打交道

二、Activity生命周期(生命周期方法)

由图可知,这些方法调用的顺序:

ty正常启动:onCreate -> onStart -> onResume;

ty被杀掉:onPause -> onStop -> onDestroy,此为一个完整的生命周期。

3.中断处理:onPause -> onStop,恢复时onRestart-> onStart -> onResume;

4.如果当前Activity是半透明状态或者对话框状态:那么中断就是onPause ,恢复的时候

onResume。

那么对于”Other app need memory”,就是我们手机在运行一个应用程序的时候,有可能

打进来电话发进来短信,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功

能,另外系统也不允许你占用太多资源,至少要保证一些功能(比如电话),所以资源不足

的时候也就有可能被kill掉。

方法在系统中的作用及我们应该做什么:

onCreate(创建):在这里创建界面,做一些数据的初始化工作;

onStart(可视状态): 到这一步变成“用户可见不可交互”的状态;

onResume(可交互状态):变成和用户可交互的,(在Activity栈系统通过栈的方式管

理这些Activity,即当前Activity在栈的最上端,运行完弹出栈,则回到上一个Activity);

onPause(暂停状态):到这一步是可见但不可交互的,系统会停止动画等消耗CPU的

事情。从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优

先级降 低,有可能被系统收回。在这里保存的数据,应该在onResume

里读出来。

OnStop(停止状态):变得不可见 ,被下一个activity覆盖了。

onDestroy(杀死):这是Activity被kill前最后一个被调用方法了,可能是其他类调用

finish方法或者是系统为了节省空间将它暂时性的干掉。

onPause,onstop, onDestroy,三种状态下 activity都有可能被系统杀掉。

Activity栈:Activity以栈的形式进行管理,后进先出的原则

三、Activity之间的通信

在 Android 中,不同的 Activity 实例可能运行在一个进程中,也可能运行在不同的进

程中。因此我们需要一种特别的机制帮助我们在 Activity 之间传递消息。

Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的

目的地,还可以包含消息的内容,这好比一封 Email,其中不仅应该包含收件地址,还可以

包含具体的内容。

Intent是一种运行时绑定(runtime binding)机制

Intent负责对操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent

的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。因此,Intent

在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用

者之间的解耦。

在应用中,我们可以以两种形式来使用Intent:

直接Intent(应用程序内部):指定了component(组建)属性的Intent。通过指定具

体的组件类,通知应用启动对应的组件。

间接Intent(应用程序之间):没有指定comonent属性的Intent。这些Intent需要包