我在联系人上使用ContentObserver。但在这里我的问题是至少一旦我必须启动我的应用程序其他明智我无法得到通知chages。我的代码就像这样
ContactsContentObserver cco = new ContactsContentObserver(handler);
ContentResolver contentResolver = getContentResolver();
contentResolver.registerContentObserver(RawContacts.CONTENT_URI,
true, cco);
}
private class ContactsContentObserver extends ContentObserver
{
public ContactsContentObserver(Handler h)
{
super(h);
}
public void onChange(boolean selfChange)
{
System.out.println("##########SOMEBODAY CHANGED ANYTHING AT THE CONTACTS");
Toast.makeText(getApplication(),"####Updated####",Toast.LENGTH_LONG).show();
}
.... 谢谢。
答案 0 :(得分:0)
如果您正在使用Android开发UI应用程序,那么无论您的代码或功能是什么,只有在您启动应用程序后才能运行。 您可以选择开发服务或Beckgroud进程,该进程将在设备的后台运行。你甚至不需要发射它。 您正在使用Android的OnScreen键盘的实例。 这是一种等待某种事件或类似事件的应用程序,并且基于它弹出。 尝试开发服务,看看会发生什么......
答案 1 :(得分:0)
我假设您希望ContentObserver
在联系人发生变化时自动运行。问题是,需要调用注册该侦听器的代码。您可能要做的是创建一个服务,该服务在设备完成引导时启动,注册ContentObserver
然后退出。该服务不需要连续运行,因为ContentProvider
框架将自动调用您的代码。查看注册以按this post.
BOOT_COMPLETED_ACTION
意图