ActivityCompat和ContextCompat是否可以互换?

时间:2019-04-11 09:03:16

标签: java android

这是代码段,用于请求访问设备中精细位置的权限。

.optset

如果我改用ActivityCompat切换了ContextCompat,反之亦然,我的代码是否仍能按需运行?例如,

if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){

        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);

    } 

...

我知道ContextCompat是ActivityCompat的子类,但是什么决定何时使用ContextCompat或ActivityCompat,因为它们共享相同的方法?

1 个答案:

答案 0 :(得分:1)

实际上没有任何取舍。不知道他们为什么这么写-checkSelfPermission()是ContextCompat的一种方法,而ActivityCompat是ContextCompat的子类(子类),因此,无论何时需要ContextCompat类的对象,都可以传递任何一个。

refer