Мне интересно, что означает это ключевое слово в приведенном ниже коде
В вашем фрагменте кода
ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED
ключевое слово this
относится к текущему экземпляру Activity
.
Для тех из нас, кто привык писать код на Java: в этом случае Kotlin отличается от Java.
В Java вам нужно будет написать RequiresLocation.this
, как только вы попадете в область действия View.OnClickListener
.
В Kotlin просто this
подойдет. Но если вы работаете с Android Studio или IntelliJ Idea и продолжаете печатать, введя @ сразу после this , то завершение кода предложит вам this@RequiresLocation
, так что вы можете уверен, что это действительно правильный this
.
Что означает параметр Context
в checkSelfPermission()
?
Вы можете передать любой Context
- Activity
, Application
, но также и некоторый тип Service
(обратите внимание, что Application
и Service
оба простираются от ContextWrapper
, что в соответствии с docs имеет семь прямых и более 40 косвенных подклассов, один из них Activity
. Все они являются допустимыми аргументами checkSelfPermission()
.)