Android ToggleButton暂停/恢复问题

时间:2014-01-26 12:39:12

标签: android toggle

我的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

1 个答案:

答案 0 :(得分:2)

当你的活动被破坏,并且你没有在某些持久性状态下保存状态时,当你回到它时,oncreate再次运行,你的包是空的,所以“ToggleButton”键的选项是空的,因此返回false,您的切换按钮保持静音