android - 短信 ContentObserver 的处理程序

标签 android sms contentobserver

我在这里的两篇文章中找到了这段代码:

String url = "content://sms/"; 
Uri uri = Uri.parse(url); 
getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler));

但我不知道在 MyContentObserver 的构造函数中传递的这个处理程序是什么。

我想在“content://sms//sent”中注册一个ContentObserver,以便在Android发送短信时收到通知,并且在ContentObserver的文档中说,将从构造函数中传递的handle调用方法OnChange .

最佳答案

一个HandlerLooper 结合使用一项一项地执行任务队列。对于 ContentObserver,其 onChange()方法可能会被调用多次。要将这些调用排队并按顺序执行它们,您需要提供一个处理程序。

如果你想要onChange()要在主线程中执行,只需创建一个新的处理程序,例如:Handler handler = new Handler();并通过它。

但是如果你想要onChange()要在另一个线程中执行,首先需要创建一个Looper对于该线程使用 Looper.prepare();

您不需要创建 Looper 的原因对于主线程来说,它是自动为您创建的。

有关 Handler 和 Looper 如何工作的详细解释,请查看 this article .

关于android - 短信 ContentObserver 的处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760956/

相关文章:

android - 如何生成跳转到特定短信对话的Intent?

callback - 来自 Parse Cloud 的 Twilio SendSMS 拒绝 StatusCallback URL

android - Android 短信状态的 70 值代表什么?

android - 内容提供者和内容观察者同步

android - 为什么多次调用 ContentObserver?

android - 检测哪个选定项目(在 ListView 中)产生了 ContextMenu (Android)

android - 如何动态地将 ImageView 对齐到约束布局的中心?

java - 在 Android 中发出异步 HTTP 请求是否有公认的最佳实践?

Android:如何以编程方式发送 unicode 短信并在另一端正确接收?

android - 检测安卓联系人是否被删除