2010-05-01 2 views
2

Являются ли наблюдатели контента постоянными в Android? Если я создам наблюдателя контента в активности, будет ли этот наблюдатель продолжать работать, пока я не удалю наблюдателя.Android Persistent ContentObserver

В основном я создаю службу для SMS, где при приеме и отправке я отправляю SMS-сообщение на веб-службу, поэтому я могу проверять свои сообщения без наличия моего телефона.

Если наблюдатель содержания привязано к жизни своей деятельности, то как я могу создать ContentObserver, которые будут всегда получать уведомления о содержании:/смс/

ответ

5

Если я создаю наблюдатель содержимого в деятельности, будет чтобы наблюдатель продолжал , пока я не удалю наблюдателя.

Только если вам нравится утечка памяти, а затем только до тех пор, пока Android не завершит процесс. Хорошо выполненные действия не будут регистрировать наблюдателей контента без их регистрации в соответствующее время (например, onDestroy()).

как я могу создать ContentObserver , которые всегда будут получать уведомления на содержание:/смс/

Поставщик содержимого SMS не является частью SDK. Он может работать или не работать на вашем телефоне. Он может работать или не работать в будущих версиях Android.

Единственный способ иметь ContentObserver, который немного зацикливается на том, чтобы он находился в Service. Однако services do not live forever, either. Помимо этого, нет возможности, чтобы наблюдатель «всегда получал уведомления».

Извините!

+0

Каким образом можно считать утечку памяти, если вы намерены иметь постоянный наблюдатель контента? Так же, как широковещательный приемник. И если я правильно вас понимаю, у наблюдателя контента есть больше шансов выжить дольше, если он зарегистрирован через службу, которая (как можно больше) настойчиво работает, чем просто регистрирует наблюдателя и не поддерживает ссылку на нее, например, напрямую в методе 'onReceive()' вещательного приемника после загрузки? – Reti43

+0

@ Reti43: «Каким образом можно считать утечку памяти, если вы намерены иметь постоянный наблюдатель контента?» - вы не сделали бы этого из деятельности. «И если я правильно вас понимаю ...» - правильно, хотя на Android 7.0+ вы можете использовать «JobScheduler» для наблюдения за содержимым для вас, вызывая ваш «JobService», когда есть изменения. – CommonsWare

Смежные вопросы