处理程序到短信ContentObserver

时间:2012-03-18 18:21:08

标签: 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的文档中说明将从构造函数中传递的句柄调用OnChange方法

1 个答案:

答案 0 :(得分:4)

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

如果您希望在主线程中执行onChange(),只需创建一个新的Handler,如:Handler handler = new Handler();并传递它。

但是如果你想在另一个线程中执行onChange(),首先需要使用Looper

为该线程创建Looper.prepare();

您不需要为主线程创建Looper的原因是它会自动为您创建。

如何处理Handler& Looper工作,检查this article