Android 2.x上的ContentObserver onChange()未被调用

时间:2014-12-12 12:18:40

标签: android contentobserver

我有一个ContentObserver,我在android 4.x上测试过,它运行良好。但是当我在android 2.x上尝试它时它不起作用。

mContentObserver = new ContentObserver(new Handler()) {
            @Override
            public void onChange(boolean selfChange, Uri uri) {
                if (CardDAO.MANAGEMENT_URI.equals(uri) || SubjectDAO.MANAGEMENT_URI.equals(uri)
                        || LearningProgressDAO.MANAGEMENT_URI.equals(uri) || ActivationDAO.MANAGEMENT_URI.equals(uri)) {
                    onContentChanged();
                }
            }
        };

1 个答案:

答案 0 :(得分:0)

似乎android 2.x中没有这样的方法public void onChange(boolean selfChange, Uri uri)。解决方案是使用旧API public void onChange(boolean selfChange)

中的方法

HERE是两个版本之间的区别

2.x的:

private final class More ...NotificationRunnable implements Runnable {

        ...................

     public void run() {
         ContentObserver.this.onChange(mSelf);
     }
 }

4.x的:

private final class NotificationRunnable implements Runnable {

       ................................

    @Override
    public void run() {
        ContentObserver.this.onChange(mSelfChange, mUri, mUserId);
    }
}