如何使用Context.getSystemService(Class)在Kotlin中获取实例

时间:2019-02-27 16:17:05

标签: android kotlin androidx android-jetpack

在Google Android Kotlin文档中, android文档中不时存在以下一行: 此类的实例必须使用Context.getSystemService(Class)

获得

例如:

  

必须使用带有参数AppOpsManager.class的Context.getSystemService(Class)或带有参数Context.APP_OPS_SERVICE的Context.getSystemService(String)来获取此类的实例。

有人可以说明这是什么,以及如何为类AppOpsManager创建一个实例。

通常,我们可以创建如下实例: val use = AppOpsManager()

请帮助并解释以上Context.getSystemService()

谢谢。

2 个答案:

答案 0 :(得分:1)

使用以下内容:

context.getSystemService(AppOpsManager::class.java)

答案 1 :(得分:1)

摘自Android Developer文档:

  

AppOpsManager

     

用于与“应用程序操作”跟踪进行交互的API。

     

此API通常不适用于第三方应用程序   开发人员;大多数功能仅适用于系统应用程序。

     

此类的实例必须使用   Context.getSystemService(Class)和参数   AppOpsManager.classContext.getSystemService(String)与   参数Context.APP_OPS_SERVICE

要创建此类的实例,必须使用上下文实例中的getSystemService

val appOpsManager: AppOpsManager? = getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager?

如果您的minSdkVersion为23,则可以改用此代码。

val appOpsManager: AppOpsManager? = getSystemService(AppOpsManager::class.java)