注:Android中的联系人更改

时间:2010-05-05 05:10:25

标签: android observer-pattern contact

我在联系人上使用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();


       }

.... 谢谢。

2 个答案:

答案 0 :(得分:0)

如果您正在使用Android开发UI应用程序,那么无论您的代码或功能是什么,只有在您启动应用程序后才能运行。 您可以选择开发服务或Beckgroud进程,该进程将在设备的后台运行。你甚至不需要发射它。 您正在使用Android的OnScreen键盘的实例。 这是一种等待某种事件或类似事件的应用程序,并且基于它弹出。 尝试开发服务,看看会发生什么......

答案 1 :(得分:0)

我假设您希望ContentObserver在联系人发生变化时自动运行。问题是,需要调用注册该侦听器的代码。您可能要做的是创建一个服务,该服务在设备完成引导时启动,注册ContentObserver然后退出。该服务不需要连续运行,因为ContentProvider框架将自动调用您的代码。查看注册以按this post.

接收BOOT_COMPLETED_ACTION意图