Intent 是安卓应用开发的一个对象,用于表示安卓应用执行动作的意图。
你可以使用意图来执行许多种动作,例如打开一个网站或从一个安卓Activity 到下一个。
在Android中,有两种Intent :
- 显式
Intent,是一个在运行它的应用程序中实现的意图。 - 隐式
Intent,向安卓系统发送一个请求,以实现预期的行动。至于如何响应请求,则取决于安卓系统。
本教程将帮助你在用Kotlin开发Android应用程序时运行这两种类型的Intent 。
在这个GitHub repo中还有一个配套的Android项目,演示了如何创建这两种类型的Intent 。你可以将该项目导入到Android Studio。
创建显式Kotlin Intent
要创建一个显式Intent ,你需要向构造函数传递一个Context 和一个Class 。
例如,下面的Kotlin代码创建了一个intent ,它把当前活动this 作为Context 参数,把SecondActivity 类作为Class 参数:
intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
在Kotlin中,SecondActivity 类被直接使用::class.java 语法初始化。
然后,intent 被传递给startActivity() 函数,这样一个新的活动将被Android启动。
在示例应用程序中,你可以按下Go to second activity 按钮来查看一个显式Intent 的操作。

执行一个Kotlin显式意图
显式意图的代码可以在MainActivity.kt 文件中的第14至20行找到。
现在你已经看到了一个显式Intent 的例子,接下来让我们看看一个隐式Intent 的例子。
创建隐式的Kotlin Intent
通过在Intent 构造函数中指定两个参数,就可以创建一个隐式Intent :
- 你希望Android执行的
Intent行动。Android提供了一组有限的动作,你可以使用它们 - 要操作的数据,表示为一个
Uri值
例如,假设你想让你的安卓应用打开一个网络浏览器并导航到某个URL。
这就是你创建Intent 对象的方法。
intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://metapx.org"))
startActivity(intent)
上面的代码指出,你想执行一个预定的操作,称为ACTION_VIEW ,并使用解析后的URL地址https://metapx.org ,作为Uri 的数据。
安卓系统将尽可能地满足这个请求。
在示例的Android应用中,你可以按下Launch Browser 按钮,看到一个隐式Intent 的动作:

执行一个Kotlin隐式意图
隐式意图的代码可以在MainActivity.kt 文件的第22至28行找到。
通过提供一个网页地址作为Uri 数据值,Android将打开你的默认浏览器,并将活动应用程序切换到该浏览器。
浏览器也会自动导航到提供的URL。
现在你已经学会了如何在Kotlin中创建一个AndroidIntent 对象。干得好!👍