赞
踩
Activity
属于 Android
的四大组件之一Activity
,献上1份 Activity
的学习攻略,包括其生命周期、启动模式、启动方式等等,希望你们会喜欢。Carson带你学Android 文章系列:
Carson带你学Android:页面活动-Activity
Carson带你学Android:广播-BroadcastReceiver
Carson带你学Android:服务-Service
Carson带你学Android:内存承载器-ContentProvider
即 活动,属于 展示型组件
属于
Android
四大组件之一:Activity
、Service
、BroadcastReceiver
、ContentProvider
显示界面 & 与用户进行交互
- 一个
Activity
通常是一个界面,是四大组件唯一能被用户感知的- 每个活动被实现为一个独立的类, & 从活动基类继承过来
Activity
之间通过Intent
进行通信
更加详细请看文章:Android基础:3分钟详解Activity生命周期
Activity
的启动模式有4种,具体如下更加详细请看文章:Android基础:最易懂的Activity启动模式详解
Activity
的方式主要是:显式Intent
& 隐式Intent
// 1. 使用构造函数 传入 Class对象 Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); // 2. 使用 setClassName()传入 包名+类名 / 包Context+类名 Intent intent = new Intent(); // 方式1:包名+类名 // 参数1 = 包名称 // 参数2 = 要启动的类的全限定名称 intent.setClassName("com.hc.hctest", "com.hc.hctest.SecondActivity"); // 方式2:包Context+类名 // 参数1 = 包Context,可直接传入Activity // 参数2 = 要启动的类的全限定名称 intent.setClassName(this, "com.hc.hctest.SecondActivity"); startActivity(intent); // 3. 通过ComponentName()传入 包名 & 类全名 Intent intent = new Intent(); // 参数1 = 包名称 // 参数2 = 要启动的类的全限定名称 ComponentName cn = new ComponentName("com.hc.hctest", "com.hc.hctest.SecondActivity"); intent.setComponent(cn); startActivity(intent);
// 通过Category、Action设置
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.addCategory("com.hc.second");
intent.setAction("com.hc.action");
startActivity(intent);
更加详细请看文章:Android:关于 Intent组件的那些小事(介绍、使用方法等)
Activity
的启动过程具体如下:
当请求启动Activity
时:
Launcher
进程通过Binder
驱动向ActivityManagerService
类发起startActivity
请求;ActivityManagerService
类接收到请求后,向ActivityStack
类发送启动Activity
的请求;ActivityStack
类记录需启动的Activity
的信息 & 调整Activity
栈 将其置于栈顶、通过 Binder
驱动 将 Activity
的启动信息传递到ApplicationThread
线程中(即Binder
线程)ApplicationThread
线程通过Handler
将Activity
的启动信息发送到主线程ActivityThread
ActivityThread
类接收到该信息 & 请求后,通过ClassLoader
机制加载相应的Activity
类,最终调用Activity
的onCreate()
,最后 启动完毕Activity
的卡顿原因主要归结如下:
关于内存泄漏 & 性能优化,请看系列文章:
Android性能优化:这是一份全面&详细的内存优化指南
Android性能优化:手把手带你全面了解 内存泄露 & 解决方案
Android性能优化:那些关于Bitmap图片资源优化的小事
Android性能优化:手把手带你全面了解 绘制优化
Android性能优化:布局优化 详细解析(含、、讲解 )
加速启动Activity
的方式归结如下:
至此,关于Android
四大组件之一的Activity
讲解完毕。
本文全面讲解了 Activity
,现在大家对 Activity
应该十分了解了
Carson带你学Android 文章系列:
Carson带你学Android:页面活动-Activity
Carson带你学Android:广播-BroadcastReceiver
Carson带你学Android:服务-Service
Carson带你学Android:内存承载器-ContentProvider
博客链接:https://carsonho.blog.csdn.net/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。