我的ToggleButton存在问题。
我第一次点击它时,会使媒体声音静音。第二次,它取消了它们。为了保存ToggleButton的状态,我使用了onPause / onResume方法。但问题是,如果我启动活动,然后我按下切换按钮,我暂停它,当我最终恢复它时,切换按钮不再工作,应用程序保持静音。 (即使状态得以保存)
我的活动部分:
public void onToggleClicked(View view) {
// Is the toggle on?
boolean on = ((ToggleButton) view).isChecked();
if (on) {
AudioManager aManager=(AudioManager)getSystemService(AUDIO_SERVICE);
aManager.setStreamMute(AudioManager.STREAM_MUSIC, true);
} else {
AudioManager aManager=(AudioManager)getSystemService(AUDIO_SERVICE);
aManager.setStreamMute(AudioManager.STREAM_MUSIC, false);
}
}
@Override
public void onPause() {
super.onPause();
bundle.putBoolean("ToggleButtonState", ToggleButton.isChecked());
}
@Override
public void onResume() {
super.onResume();
ToggleButton.setChecked(bundle.getBoolean("ToggleButtonState",false));
}
我知道我可能应该在某个地方使用另一个暂停/恢复代码,你能帮忙吗?谢谢:))
这是我打开应用程序时的日志,打开按钮的活动,单击按钮,暂停活动,恢复活动,再次单击按钮并再次暂停活动:
01-01 04:19:55.004: D/OpenGLRenderer(10766): Enabling debug mode 0
01-01 04:19:55.113: I/ActivityManager(10766): Timeline: Activity_idle id: android.os.BinderProxy@41df9820 time:9273361
01-01 04:20:00.902: I/ActivityManager(10766): Timeline: Activity_launch_request id:com.example.appquiz time:9279155
01-01 04:20:01.121: I/ActivityManager(10766): Timeline: Activity_idle id: android.os.BinderProxy@41f99298 time:9279369
01-01 04:20:05.840: I/ActivityManager(10766): Timeline: Activity_idle id: android.os.BinderProxy@41df9820 time:9284092
01-01 04:20:09.988: I/ActivityManager(10766): Timeline: Activity_launch_request id:com.example.appquiz time:9288234
01-01 04:20:10.168: I/ActivityManager(10766): Timeline: Activity_idle id: android.os.BinderProxy@41fbf7f0 time:9288414
01-01 04:20:20.566: I/ActivityManager(10766): Timeline: Activity_idle id: android.os.BinderProxy@41df9820 time:9298814
答案 0 :(得分:2)
当你的活动被破坏,并且你没有在某些持久性状态下保存状态时,当你回到它时,oncreate再次运行,你的包是空的,所以“ToggleButton”键的选项是空的,因此返回false,您的切换按钮保持静音