Kotlin类型不匹配:WorkManager创建通知通道时预期Context却得到String
问题原因
getSystemService()是Context类的成员方法,在Activity中可以直接调用是因为Activity本身继承自Context,默认携带上下文实例。而Worker类不属于Context子类,你没有指定调用该方法的上下文对象,才会触发类型不匹配错误。
修复方案
修改createNotificationChannel方法中初始化manager的代码即可:
// 替换原有的val manager= getSystemService(NOTIFICATION_SERVICE) as NotificationManager val manager = applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
代码说明
- 用Worker类自带的
applicationContext全局上下文调用getSystemService()方法,符合该方法的调用要求 - 传入
Context.NOTIFICATION_SERVICE作为系统服务的标识,即可正确获取通知管理器实例
内容的提问来源于stack exchange,提问作者veera
相关产品推荐
相关产品推荐

