A Handler
используется вместе с Looper
для выполнения очереди задач одна за другой. В случае ContentObserver его метод onChange()
может вызываться несколько раз. Чтобы поставить эти вызовы в очередь и выполнить их последовательно, вам необходимо предоставить обработчик.
Если вы хотите, чтобы onChange()
выполнялся в главном потоке, просто создайте новый обработчик, такой как: Handler handler = new Handler();
и передайте его.
Но если вы хотите, чтобы onChange()
выполнялся в другом потоке, вам сначала нужно создать Looper
для этого потока, используя Looper.prepare();
Причина, по которой вам не нужно создавать Looper
для основного потока, заключается в том, что он создается автоматически для вас.
Для хорошего объяснения того, как работают Handler & Looper, проверьте эту статью .