在Android开发中,Intent是一种非常重要的组件间通信机制。它被用来启动活动(Activity)、服务(Service)或者广播接收器(Broadcast Receiver),并且可以传递数据和执行动作。本篇文章将详细解析Intent的用法。 Intent分为显式Intent和隐式Intent两种类型。显式Intent明确指定要启动的目标组件,通过组件的全限定类名(包名+类名)来指定。而隐式Intent则是不指定具体组件,而是通过Action、Data、Category等元数据来匹配系统中能够处理该Intent的组件。 1. 显式Intent的使用: - 创建Intent实例:`Intent intent = new Intent(context, TargetActivity.class);` - 启动Activity:`startActivity(intent);` - 启动Service:`startService(intent);` 2. 隐式Intent的使用: - 设置Action:`intent.setAction(Intent.ACTION_VIEW);` - 设置Data(URI):`intent.setData(Uri.parse("http://example.com"));` - 添加Category:`intent.addCategory(Intent.CATEGORY_BROWSABLE);` - 查找并启动匹配的组件:`context.startActivity(intent);` 或 `context.startService(intent);` 3. 传递数据: - 使用putExtra()方法添加键值对:`intent.putExtra("key", "value");` - 获取数据:在目标组件中使用`getExtras()`或`getStringExtra("key")`等方法获取。 4. 使用Intent创建意图过滤器(Intent Filter): - 在AndroidManifest.xml中,为Activity或BroadcastReceiver添加过滤器,定义能响应的Action、Data和Category。 - 示例: ```xml <activity android:name=".MyActivity"> <intent-filter> <action android:name="com.example.MY_ACTION" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="http" android:host="example.com" /> </intent-filter> </activity> ``` 5. 使用FLAG: - FLAG_ACTIVITY_NEW_TASK:开启新的任务栈,常用于Service启动Activity。 - FLAG_ACTIVITY_CLEAR_TOP:如果目标Activity已经在栈顶,那么栈上的所有Activity都会被清除,只留下目标Activity。 - FLAG_ACTIVITY_SINGLE_TOP:如果目标Activity已经在栈顶,不会再次创建,而是调用onNewIntent()方法。 6. 使用Intent实现Activity之间的通信: - 使用startActivityForResult()启动Activity,获取返回结果。 - 在目标Activity中调用setResult()设置结果,然后使用finish()关闭Activity。 - 在调用startActivityForResult()的Activity中重写onActivityResult()接收结果。 7. Intent用于启动服务(Service): - 创建Intent,设置Service类名,然后调用startService()。 - Service生命周期中的onStartCommand()方法会在服务启动时被调用。 8. 使用Intent传递大对象: - 对于大对象,如Bitmap,推荐使用Parcelable接口进行序列化。 - 使用Bundle.putParcelable()添加到Intent,然后在接收端使用Bundle.getParcelable()获取。 9. Intent的其他用途: - 发送广播:创建Intent,设置Action,然后使用sendBroadcast()发送。 - 接收广播:在AndroidManifest.xml中注册BroadcastReceiver,并设置对应的Intent Filter。 总结,Intent在Android开发中扮演着至关重要的角色,无论是启动组件、传递数据还是实现组件间的通信,都离不开Intent的使用。理解和熟练掌握Intent的用法,是成为一名合格的Android开发者的基础。通过不断地实践和学习,你将能够灵活运用Intent来构建高效、流畅的应用程序。






















































































- 1


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 房产公司档案管理制度.doc
- 城市集中供热工程安全施工组织设计.doc
- 工业源扩散预测计算.doc
- [PPT]工程结算管理中需要注意的问题.ppt
- 氧压机组精调垫铁低压缸起始安装施工工法.doc
- 建设工程施工安全标准化管理资料(已排版).doc
- 微信小程序 Artand.zip
- 工程管理流程(已交).doc
- 微信小程序 小程序模板 小程序可视化设计工具 Taro Taro UI.zip
- 广州市第四装修有限公司临时用电方案模板.doc
- 小知识审计、社会审计、工程审计、工程审价.doc
- 员工绩效考核表(公司总经理).doc
- 学校综合教学校投标书.doc
- Awesome for wepy ! 微信小程序组件化开发框架wepy开发资源汇总.zip
- 大型研究所施工组织设计.doc
- 清单计价规范宣贯(5月).ppt


