내 수업이 ContentObserver를 확장하는 Android 앱을 개발 중입니다. VOLUME_RING의 변경 사항을 관찰하기 위해 내 클래스 을 등록하고 있습니다.int 값이 ContentObserver의 onchange에서 업데이트되지 않습니다.
내 수업의 onchange 메서드는 볼륨 버튼을 변경해야만 호출됩니다.
문제는 클래스의 생성자에서 업데이트되는 전역 int 변수가 onchange 메서드에서 업데이트를 얻지 못하는 것입니다.
아래의 코드는 내가 시도한 것입니다,
public class VolumeChecker extends ContentObserver
{
Context context;
Handler handler;
int initialVolume;
public VolumeChecker(Context c, Handler handler)
{
super(handler);
context=c;
this.handler = handler;
AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
initialVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
Log.e("inisde","volvhevker - intitvol " + initialVolume);
}
@Override
public boolean deliverSelfNotifications()
{
return super.deliverSelfNotifications();
}
@Override
public void onChange(boolean selfChange)
{
super.onChange(selfChange);
Log.e("onchange","initialVolume" + initialVolume);
refresh();
}
public void refresh()
{
new VolumeChecker(context,handler);
}
}
새로 고침시 생성자에 업데이트 점점되는 initialVolume 변수 값은, 은 onchange를 방법에 반영하기되지 않습니다.
Please help.thanks! 제발 도와주세요!
감사! 그것은 효과가 있었다. – Dave