词搜索。在这里,Intent的`ACTION_VIEW`用于打开网页,`ACTION_WEB_SEARCH`则用于启动搜索引擎。`setData()`方法设置了要浏览的网页URL,而`putExtra()`则将搜索关键词作为额外参数传递。 3. Category(类别) Intent的Category属性用于进一步限定action的范围。例如,`ACTION_MAIN`通常与`CATEGORY_LAUNCHER`一起使用,表示这是一个应用程序的主入口。`ACTION_VIEW`可能需要`CATEGORY_BROWSABLE`来表明这是一个可以通过浏览器访问的链接。在AndroidManifest.xml中,Activity可以声明多个category,Intent在启动时会匹配所有相关的category。 4. Component(组件) Intent可以直接指定要启动的组件,比如Activity或Service的全名。这样可以明确地指定目标,而无需依赖于系统的解析过程。例如: ```java Intent intent = new Intent(this, TargetActivity.class); startActivity(intent); ``` 在这个例子中,`TargetActivity.class`指定了要启动的Activity。 5. Flags(标志) Intent的Flags可以设置一些特殊行为,如`FLAG_ACTIVITY_NEW_TASK`用来开启新的任务栈,或者`FLAG_ACTIVITY_CLEAR_TOP`用于清除栈顶所有活动并返回到指定Activity。 6. Broadcast(广播) Intent同样用于发送Broadcast,广播是Android中的另一种组件间通信方式。例如,你可以发送一个带有数据的广播: ```java Intent intent = new Intent("com.example.MY_ACTION"); intent.putExtra("key", "value"); sendBroadcast(intent); ``` 其他组件可以注册接收器监听这个广播,并处理接收到的数据。 7. Intent Filter(意图过滤器) Intent Filter是Activity或BroadcastReceiver在AndroidManifest.xml中声明的一种机制,用于声明它们能响应哪些Intent。例如,一个Activity可以通过Intent Filter声明它可以处理某种类型的URL或特定的action,这样当有匹配的Intent被发送时,系统会自动启动该组件。 8. StartActivityForResult 当需要从一个Activity启动另一个Activity并等待结果时,可以使用`startActivityForResult()`。这常用于选择照片、获取用户输入等场景。启动的Activity完成后,可以通过`onActivityResult()`回调将结果返回给原始Activity。 9. Service的启动与绑定 Intent不仅可以启动Activity,还可以启动和绑定Service。`startService()`用于启动后台服务并执行一次性任务,而`bindService()`则用于建立客户端和服务端的连接,允许进行长时间的数据交换和控制。 总结起来,Intent是Android中至关重要的一个概念,它是不同组件间通信的桥梁,无论是启动Activity、Service,还是发送Broadcast,Intent都在其中起到了关键作用。理解Intent的工作原理和使用方法,对开发Android应用至关重要。在实际开发中,我们需要根据需求灵活运用Intent的各种属性和功能,以实现组件间的有效交互。
- 粉丝: 7
- 资源: 943
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助