Android Activity:组件模式、生命周期与消息传递详解

需积分: 6 5 下载量 55 浏览量 更新于2024-07-20 收藏 903KB PPTX 举报
Android Activity是Android应用程序的核心组成部分,它是Android组件体系中的"容器+组件"模式的具体应用,负责承载用户界面和业务逻辑。在Android生态系统中,Activity相当于一个独立的功能模块或页面,其生命周期由Android应用程序管理,它们在运行时通过"服务"提供所需的功能。 Android有四大核心组件:Activity、Service、ContentProvider和BroadcastReceiver。Activity主要用于展示UI和处理用户的交互,扮演了MVC模型中的V(视图)角色,而应用程序本身则是MVC的C(控制器)。每个Activity都隶属于一个应用程序,并且可以互相调用,类似于网页在浏览器中的跳转,但Android的任务管理采用栈式结构,使得"back"键能够回退到上一个Activity。 为了配置和启动Activity,开发者需要在AndroidManifest.xml文件中定义intent-filter,这就像设置了一个app的入口点,当用户执行特定操作时,系统会引导到这个Activity。启动Activity可以通过startActivity()或startActivityForResult()方法,后者的区别在于前者不等待结果就继续执行,后者则允许发起Activity的请求并等待结果。 结束Activity通常是隐式进行的,当用户按下"back"键或者Activity完成了其任务后,系统会自动销毁并从内存中移除。然而,开发者通常避免显式使用finish()或finishActivity()方法,因为它们会导致Activity立即销毁,而不是按照栈的规则自然退出。当Activity结束时,数据和结果可以封装在Intent中,通过putExtra()方法添加,然后在onActivityResult()回调中通过getXXX()方法获取。 在处理"多任务"场景时,Activity的栈式管理使得任务切换更加流畅。同时,Activity也充当了消息传递的桥梁,它封装了下一步操作的意图,实现了发送者和接收者之间的解耦。发送者通过Activity的startActivity()来传递意图,接收者则通过getIntent()来捕获意图。意图中包含了接收者的信息以及传递的数据,可以是完整的Bundle对象,也可以通过putExtra()和getXXX()进行简化操作。 启动Activity并获取结果时,通常会设置一个requestCode,以便在onActivityResult()方法中根据请求码区分不同的结果。当目标Activity完成后,使用setResult()设置结果,然后调用finish()结束自身,启动下一个Activity。如果使用startActivityForResult(),则会在目标Activity的回调方法中处理结果,通常标记为"standard"模式。Android Activity是构建Android应用交互和用户体验的关键组件,理解和掌握其工作原理对于开发高质量应用至关重要。