2014-12-12 3 views
0

나는 Android 4.x에서 테스트 한 ContentObserver을 가지고 있으며 제대로 작동합니다. 하지만 안드로이드 2.x에서 시도했을 때 작동하지 않습니다.ContentObserver Android 2.x의 onChange()가 호출되지 않습니다.

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(); 
       } 
      } 
     }; 
+0

것은 올 방법 당신은 질문을하고 동시에 그것을 대답합니까? – Carnal

+0

@Carnal 화면 하단에 체크 박스가 있습니다. "자신의 질문에 대답하십시오." – Lemberg

+0

나는 그것을 알고 있습니다. 하지만 물어 본지 1 분도 안 남았습니다. 희소 한 때문에 당신은 그 해결책을 생각해 냈습니다. – Carnal

답변

0

android 2.x에는 public void onChange(boolean selfChange, Uri uri)과 같은 메서드가없는 것으로 보입니다. 이 솔루션은 기존 API 여기 public void onChange(boolean selfChange)

인 방법을 사용하는 것 두 가지 버전

사이의 차이는

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); 
    } 
}