我正在开发一个 android 应用程序,我的类扩展了 ContentObserver。我正在注册我的类以观察 VOLUME_RING 的变化。
我班级的 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 方法中。
请帮助。谢谢!