【发布时间】:2020-09-26 06:06:07
【问题描述】:
我在 Kotlin 中看到过很多示例,其中 Activity 类有一个伴随对象来封装启动 Intent 的创建,如下所示。它似乎特别受到 Java 的启发。
class HomeActivity : AppCompatActivity() {
companion object {
fun newStartIntent(context: Context): Intent {
val intent = Intent(context, HomeActivity::class.java)
return intent
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.setContentView(R.layout.activity_home)
// ...
}
// ...
}
既然 Kotlin 有顶级函数,为什么不跳过伴随对象而只拥有一个顶级函数呢?
fun newHomeActivityStartIntent(context: Context): Intent {
val intent = Intent(context, HomeActivity::class.java)
return intent
}
class HomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.setContentView(R.layout.activity_home)
// ...
}
// ...
}
【问题讨论】:
标签: android kotlin android-intent