Intent是Android应用程序中用于与其他应用程序或系统组件进行通信的关键组件。这包括启动活动,启动服务,发送广播等操作。在日常应用中,Intent的命令往往冗长而繁琐。因此,需要一种流畅的方式来简化它们。下面是如何实现这一点的方法。
在activityExt中定义扩展函数:
fun Activity.startActivity(cls: KClass<*>, bundle: Bundle? = null) {
val intent = Intent(this, cls.java)
if (bundle != null) {
intent.putExtras(bundle)
}
startActivity(intent)
}
这里的startActivity是一个在Activity上下文中定义扩展的函数,并从Activity.getContext()访问Context。
上面的代码简化了启动一个新活动的操作。它代替了以下代码:
val intent = Intent(this, MyActivity::class.java)
intent.putExtra("key_name", "value")
startActivity(intent)
新的代码会这样:
startActivity("key_name" to "value")
现在可以通过简单地调用startActivity