我想开发一个消息传递应用程序,它将显示来自本机内容提供商(sms uri)的消息以及从我的应用程序发送的消息。 我在管理这些消息时遇到困难。我已经尝试了以下想法,但请尽量建议哪个是最好的。
这是我使用的观察者代码:
public class MyObserver extends ContentObserver {
public MyObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
Log.e("uri","change");
this.onChange(selfChange, null);
}
@Override
public void onChange(boolean selfChange, Uri uri) {
// do s.th.
// depending on the handler you might be on the UI
// thread, so be cautious!
Log.e("uri",""+uri.toString());
}
}
Uri uri = Uri.parse("content://sms/");
getContentResolver().registerContentObserver(uri,true,new MyObserver(new Handler()));
1.我已经在数据库中保存了所有本机和A2A消息,因此很容易显示,但是在同步本机消息时出现问题,因为没有广播监听器删除消息。
2.第二个选项是两个只保存数据库中的a2a消息,但从两个不同的地方(数据库和内容提供商管理显示视图,如收件箱)消息既复杂又耗时
3.第三种方法是使用自定义消息类型将所有应用程序保存到内容提供商的应用程序消息中。仅显示来自内容提供商的所有消息。
请指导我。