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

볼륨 바뀌어도 고정 질문

0 추천

리시버에서

<action android:name="android.media.VOLUME_CHANGED_ACTION" />

추가하고

정적으로

manager.setStreamVolume(AudioManager.STREAM_RING,
   manager.getStreamMaxVolume(AudioManager.STREAM_RING), 0);
이런식으로  해보았는데요 이게 무한루프되면서 cpu가 100%가 되더군요
 
지금 상황이 볼륨을 바꿔어도 정적인 데이터로 유지하게할려고하는데 어느 형석으로 가야할까요?
익명사용자 님이 2014년 8월 27일 질문

1개의 답변

0 추천
당연히 무한루프를 돌지요.

볼륨이 바뀌면 리시버가 호출되는데 get해서 볼륨이 15가 나왔다치면.

그 15를 다시 set를 해주니 15로 set이 될거고. 그러면 set이 됐으니 또 다시 리시버 호출.

그러면 또 다시 볼륨 get, set, 리시버 호출... ............. 무한 반복.

적어도, 리시버에서 이전의 볼륨이랑 현재의 볼륨이랑 체크해서 같은 볼륨값이면 호출안되게끔하는 코드는

들어가있어야 무한루프로 빠지지않겠죠.
익명사용자 님이 2014년 9월 6일 답변
...