在Android 10上,ContentObserver的new onChange public API已被弃用,当您尝试使用它时,可能会导致应用程序崩溃。因此,建议使用其他方法来实现监视Uri的更改。
一种解决方案是使用ContentResolver来注册ContentObserver,然后使用Handler来处理观察Uri的更改。以下是示例代码:
class MyContentObserver : ContentObserver(Handler()) {
override fun onChange(selfChange: Boolean, uri: Uri?) {
// Handle Uri changes
}
}
// Register ContentObserver
val contentResolver = context.contentResolver
val observer = MyContentObserver()
contentResolver.registerContentObserver(
Uri.parse("content://my_uri"),
true,
observer
)
此代码将创建一个MyContentObserver类,该类扩展ContentObserver,并实现onChange回调方法以处理观察Uri的更改。然后使用ContentResolver的registerContentObserver方法注册观察者,并传递Uri作为参数。