通过通知跟踪设备联系中的更改

时间:2014-07-11 09:19:46

标签: android

如果设备联系中有更改(添加,更新,删除),如何通知Android应用程序?

这些通知需要遵循以下两种情况的变化:

  1. 当应用运行时。
  2. 应用未运行,设备联系人发生了变化。下次应用启动时,应用应收到通知,其中包含应用未运行时所做的更改。

1 个答案:

答案 0 :(得分:0)

对于第一个问题:使用附加到人员存储的Content Observer

getContentResolver().registerContentObserver (ContactsContract.Contacts.CONTENT_URI, true, new ContactOnserver());

其中:

class ContactOnserver extends ContentObserver {

        public MyContentObserver() {
            super(null);
        }

        @Override
        public void onChange(boolean selfChange) {
            // handle change here <----------------------------
        }

    }

这会在您的应用运行时通知您有关联系人更改的通知。


至于你的另一个问题 - 如何在应用程序未运行时进行所有更改 - 执行以下操作:

A。在停用之前,请将您的应用记录当前时间纳入SharedPreferences字段

B。下次加载后,查询联系人表格,查看上次退出时间后所做的更改。 我在这里没有提供任何代码示例,但我相信你会管理。在网上搜索类似的内容:

  ContentResolver cr = getContentResolver();
  Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);