在我的应用程序中,我需要获取每个呼叫(传入/传出/错误呼叫)以及消息的信息。为此,在安装应用程序时使用了内容观察者和注册观察者。但不知道为什么在注册观察者运行后只向我提供一次数据然后观察者不运行,可能是它被取消注册了。我的问题是,就我的应用程序安装而言,如何永久注册观察者也是观察者未注册的原因?
这是我的注册代码
public static void registerObserver(Context ctx)
{
resolver = ctx.getContentResolver();
handler=new SMSHandler();
call_observer=new CallObserver(handler, ctx);
resolver.registerContentObserver(CallLog.Calls.CONTENT_URI,true,call_observer);
}
这是通话记录观察者:
public class CallObserver extends ContentObserver {
private Context context;
String contact_id = "", email = "", address = "", name = "";
public static Date date;
public static SimpleDateFormat sdf;
public CallObserver(Handler handler, Context context) {
super(handler);
this.context = context;
}
@Override
public void onChange(boolean selfChange) {
// TODO Auto-generated method stub
Thread thread = new Thread() {
public void run() {
Do_Some_Thing();
}
};
thread.start();
super.onChange(selfChange);
}
private void Do_Some_Thing() {
Log.e("observer running","observer running");
}
}
}