如何在Kotlin中创建一个Android`Intent` 对象

398 阅读2分钟

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 的操作。

Executing a Kotlin explicit 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 的动作:

Executing a Kotlin implicit intent

执行一个Kotlin隐式意图

隐式意图的代码可以在MainActivity.kt 文件的第22至28行找到。

通过提供一个网页地址作为Uri 数据值,Android将打开你的默认浏览器,并将活动应用程序切换到该浏览器。

浏览器也会自动导航到提供的URL。

现在你已经学会了如何在Kotlin中创建一个AndroidIntent 对象。干得好!👍