Android 最重要的功能之一是应用能够基于它要执行的“操作”向另一个应用发送用户。 例如,如果您的应用有您要在地图上显示的公司地址,您无需在显示地图的应用中构建 Activity。 而是可以创建使用 Intent 查看地址的请求。Android 系统之后启动可以在地图上显示该地址的应用。
用 Intent 在自己应用中的 Activity 之间进行导航。 您通常使用显式 Intent 执行此操作,该 Intent 定义您希望启动的组件的确切类名称。 但是,当您希望另一应用执行操作时,比如“查看地图”,您必须使用隐含 Intent。
展示如何针对特定操作创建隐含 Intent,以及如何使用该 Intent 启动在另一个应用中执行操作的 Activity。
构建隐含 Intent
隐含 Intent 不声明要启动的组件的类名称,而是声明要执行的操作。 该操作指定您要执行的操作,比如查看、编辑、发送或 获取 某项。 Intent 通常还包含与操作关联的数据,比如您要查看的地址或您要发送的电子邮件消息。根据要创建的 Intent,数据可能是 Uri、多种其他数据类型之一,或 Intent 可能根本就不需要数据。
如果您的数据是 Uri,您可以使用一个简单的 Intent() 构造函数来定义操作和数据。
例如,此处显示如何使用指定电话号码的 Uri 数据创建发起电话呼叫的 Intent:
Uri number = Uri.parse(“tel:5551234”);
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
当您的应用通过调用 startActivity() 调用此 Intent 时,“电话”应用会发起向指定电话号码的呼叫。
这里有一些其他 Intent 及其操作和 Uri 数据对:
查看地图:
// Map point based on address
Uri location = Uri.parse(“geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California”);
// Or map point based on latitude/longitude
// Uri location = Uri.parse(“geo:37.422219,-122.08