gpt4 book ai didi

android - Android checkSelfPermission()中的 "this"指的是什么?

转载 作者:行者123 更新时间:2023-11-30 05:07:48 24 4
gpt4 key购买 nike

我想知道下面代码中的 this 关键字指的是什么(代码块是请求访问用户位置的权限)。

class RequiresLocation : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_requires_location)

turnOnLocationButton.setOnClickListener {
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED){
...
}
}
}
}

我检查了 Android 文档中的 checkSelfPermission(),它有这个:

int checkSelfPermission (Context context, 
String permission)

这里的上下文具体指的是什么?是整个应用程序而不是 Activity 吗?

最佳答案

I'm wondering what the this keyword refers to in the below code

在你的代码 fragment 中

ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED

关键字this引用当前的Activity实例。

对于我们这些习惯于编写 Java 代码的人来说:在这种情况下,Kotlin 不同于 Java。

在 Java 中,一旦您“处于”View.OnClickListener 的范围内,就必须编写 RequiresLocation.this

在 Kotlin 中,只需 this 即可。但是,如果您正在使用 Android Studio 或 IntelliJ Idea 并通过在 this 之后输入 @ 继续键入,那么代码完成将为您提供 this@RequiresLocation ,因此您可以确定它确实是正确的 this

checkSelfPermission() 中的Context 参数指的是什么?

您可以传入任何 Context - ActivityApplication,以及某种类型的 Service (注意 ApplicationService 都从 ContextWrapper 扩展,根据 docs 有七个直接子类和 40 多个间接子类,其中之一它们是 Activity。它们都是 checkSelfPermission() 的有效参数。)

关于android - Android checkSelfPermission()中的 "this"指的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54244142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com