ContentObserver中的onChange()方法正在调用较晚的Android联系人

时间:2015-08-13 10:21:30

标签: android contentobserver

我正在为我的应用程序中更改的联系人工作。我正在使用以下服务。如果我在我的联系人列表中添加任何联系人,那么ContentObserver中的onChange()方法就会在50秒后缓存这种更改。我正在申请开始时注册我的服务。

我的代码如下:

public class ContactService extends Service {

    private final ContentObserver contactsObserver = new ContentObserver(null) {

        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
//          showNotification();
            Utils.executeAsyncTask(new UploadContactsAsync(ContactService.this), null);
        }
    };

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        // remove when done testing
//      android.os.Debug.waitForDebugger();
        getApplication().getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, contactsObserver);

        if(Prefs.create(getBaseContext()).getSync()) {
            Log.e("updating contacts", "updating contacts");
            new UploadContactsAsync(ContactService.this).execute();
        }
    }

    @Override
    public void onDestroy() {
        getContentResolver().unregisterContentObserver(contactsObserver);
        super.onDestroy();
    }
}

我在主要活动中注册我的服务

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.newsample_login);

        startService(new Intent(this, ContactService.class));
}

我的清单文件

<service android:name="com.ziza.services.ContactService" />

0 个答案:

没有答案