как прислушаться к изменениям в Базе данных Контакта

Для Вашего второго вопроса альтернативно к DeleteSelectionMode можно включить Режим CUA , который дополнительно дает Вам хороший прямоугольный режим выбора, включенный C-возвратом. Режим CUA является частью emacs с тех пор 22.1.

52
задан Mansukh Ahir 17 February 2016 в 21:08
поделиться

1 ответ

Я развернул ваш пример таким, какой он есть, и он работает нормально.

package com.test.contentobserver;

import android.app.Activity;
import android.database.ContentObserver;
import android.os.Bundle;
import android.provider.Contacts.People;

public class TestContentObserver extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MyContentObserver contentObserver = new MyContentObserver();
        getApplicationContext().getContentResolver().registerContentObserver(
            ContactsContract.Contacts.CONTENT_URI, 
            true, 
            contentObserver);
    }

    private class MyContentObserver extends ContentObserver {
        public MyContentObserver() {
            super(null);
        }

        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
            Log.d(this.class.getSimpleName(), "A change has happened");
        }
    }
}

Что-то еще должно быть не так ...

Вы вносите изменения с помощью курсора наблюдатель зарегистрирован с помощью?

Убедитесь, что с помощью функции Observer deliverySelfNotifications (). (по умолчанию возвращается false)

Вы можете переопределить эту функцию наблюдателя с помощью чего-то вроде:

@Override
public boolean deliverSelfNotifications() {
    return true;
}
53
ответ дан 7 November 2019 в 09:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: