做推广网站,做网站要钱吗,网站的制作建站人,wordpress 点击特效Intent 是一个消息传递对象#xff0c;您可以用来从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信#xff0c;但其基本用例主要包括以下三个#xff1a;
启动 Activity Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity()您可以用来从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信但其基本用例主要包括以下三个
启动 Activity Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity()您可以启动新的 Activity 实例。Intent 用于描述要启动的 Activity并携带任何必要的数据。 如果您希望在 Activity 完成后收到结果请调用 startActivityForResult()。在 Activity 的 onActivityResult() 回调中您的 Activity 将结果作为单独的 Intent 对象接收。如需了解详细信息请参阅 Activity 指南。 启动服务 Service 是一个不使用用户界面而在后台执行操作的组件。使用 Android 5.0API 级别 21及更高版本您可以启动包含 JobScheduler 的服务。如需了解有关 JobScheduler 的详细信息请参阅其 API-reference documentation。 对于 Android 5.0API 级别 21之前的版本您可以使用 Service 类的方法来启动服务。通过将 Intent 传递给 startService()您可以启动服务执行一次性操作例如下载文件。Intent 用于描述要启动的服务并携带任何必要的数据。 如果服务旨在使用客户端-服务器接口则通过将 Intent 传递给 bindService()您可以从其他组件绑定到此服务。如需了解详细信息请参阅服务指南。 传递广播 广播是任何应用均可接收的消息。系统将针对系统事件例如系统启动或设备开始充电时传递各种广播。通过将 Intent 传递给 sendBroadcast() 或 sendOrderedBroadcast()您可以将广播传递给其他应用。 Intent 类型
Intent 分为两种类型
显式 Intent通过提供目标应用的软件包名称或完全限定的组件类名来指定可处理 Intent 的应用。通常您会在自己的应用中使用显式 Intent 来启动组件这是因为您知道要启动的 Activity 或服务的类名。例如您可能会启动您应用内的新 Activity 以响应用户操作或者启动服务以在后台下载文件。隐式 Intent 不会指定特定的组件而是声明要执行的常规操作从而允许其他应用中的组件来处理。例如如需在地图上向用户显示位置则可以使用隐式 Intent请求另一具有此功能的应用在地图上显示指定的位置。 下图显示如何在启动 Activity 时使用 Intent。当 Intent 对象显式命名某个具体的 Activity 组件时系统立即启动该组件。 隐式 Intent 如何通过系统传递以启动其他 Activity[1] Activity A 创建包含操作描述的 Intent并将其传递给 startActivity()。[2] Android 系统搜索所有应用中与 Intent 匹配的 Intent 过滤器。找到匹配项之后[3] 该系统通过调用匹配 Activity (Activity B) 的 onCreate() 方法并将其传递给 Intent以此启动匹配 Activity。
使用隐式 Intent 时Android 系统通过将 Intent 的内容与在设备上其他应用的清单文件中声明的 Intent 过滤器进行比较从而找到要启动的相应组件。如果 Intent 与 Intent 过滤器匹配则系统将启动该组件并向其传递 Intent 对象。如果多个 Intent 过滤器兼容则系统会显示一个对话框支持用户选取要使用的应用。
Intent 过滤器是应用清单文件中的一个表达式用于指定该组件要接收的 Intent 类型。例如通过为 Activity 声明 Intent 过滤器您可以使其他应用能够直接使用某一特定类型的 Intent 启动 Activity。同样如果您没有为 Activity 声明任何 Intent 过滤器则 Activity 只能通过显式 Intent 启动。
注意为了确保应用的安全性启动 Service 时请始终使用显式 Intent且不要为服务声明 Intent 过滤器。使用隐式 Intent 启动服务存在安全隐患因为您无法确定哪些服务将响应 Intent且用户无法看到哪些服务已启动。从 Android 5.0API 级别 21开始如果使用隐式 Intent 调用 bindService()系统会抛出异常。
Intent的七个属性
1ComponentName(组件名称)
2Action(动作)
3Category(类别)
4Data(数据)Type(MIME类型)
5Extras(额外)
6Flags(标记)