有一段Kotlin代码,作为一个Kotlin入门开发者
private fun connectService() {
val packageName = PreferenceManager.getDefaultSharedPreferences(this)
.getString("package", Endpoints.FACE.packageName)
val intent = Intent(IFaceInterface::class.java.name).apply {
`package` = packageName
}
bindService(intent, aidlServiceConnection, Context.BIND_AUTO_CREATE)
}
初始化Intent时代码为val intent = Intent(IFaceInterface::class.java.name),疑惑Intent的构造函数为什么为IFaceInterface::class.java.name,百般琢磨后才明白IFaceInterface::class.java.name代表着一个Action,相当于java中new Intent(com.example.myapplication.IFaceInterface),实则以类名作为Intent的一个Action。由于以类名作为Intent的一个ACTION也是少见,造成了一定的理解误差。
apply方法后的'package'
= packageName相当于java的intent.putPackage(packageName)。
此篇作为Kotlin开发过程中的一个记录,后续需要深入学习理解Kotlin开发。