마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

등록된 observer 갯수 확인하는법 없을까요?

0 추천
안녕하세요. 안드로이드 초보 개발자입니다.

앱을 사용중이지 않아도 단말 주소록이 변경되면 해당 내용을 수신하면 반영하여야 합니다.

그래서 서비스내부에 ContentObserver를 상속받은 클래스를 만들고, registerContentObserver를 하도록 하였습니다.

다양한 상황에 startService를 해주고 있습니다.

어차피 해당 서비스가 이미 실행중이면 onStartCommand가 불리고 맙니다.

onStartCommand에서는 return START_REDELIVER_INTENT; 을 해주고 있습니다.

따로 stopService는 시켜주지 않고 있습니다. (폰이 켜져있는동안은 계속 실행되있는게 목적)

onCreate에서 registerContentObserver하고 onDestroy에서 unregisterContentObserver하고 있습니다.

즉, stopService를 부르지 않기 때문에 onDestroy도 되지 않고 unregisterContentObserver도 불리지 않는거죠.

앱을 강제종료하거나 하면 서비스가 죽습니다. (물론 onDestroy는 불리지 않고..)

그래서 다시 onCreate, registerContentObserver를 하게 됩니다.

 

즉, regi는 여러번이 될수도 있는데 unregi는 호출을 하지 않고 있는 상황입니다.

이게 앱 강제종료 같은 상황이면 안드로이드가 알아서 unregi를 해줄거라고 생각하고 있는데..

그게 맞는지도 모르겠네요 ㅠ

근데 이게 계속 쓰다보면 폰이 느려지는듯한 느낌이 있습니다.

ContentObserver가 여러번 등록된게 내부적으로 남아있어서 그런가 싶기도 합니다.

그래서 Observer 갯수 확인을 할수 있는 방법이 없나... 한데요

혹시 이에 대한 내용 아시는분, 조언 부탁드립니다.

감사합니다.
블랙이요블랙 (12,860 포인트) 님이 2015년 10월 29일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...