2014-01-26 46 views
0

我的ToggleButton出现问题。Android 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: [email protected] 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: [email protected] time:9279369 

01-01 04:20:05.840: I/ActivityManager(10766): Timeline: Activity_idle id: [email protected] 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: [email protected] time:9288414 

01-01 04:20:20.566: I/ActivityManager(10766): Timeline: Activity_idle id: [email protected] time:9298814 
+0

您是否尝试过在您的onresume和暂停方法中输出日志以查看该卡在静音时的值,您拥有的值编辑,仍然是你退出的价值? –

+0

你如何获得捆绑? –

+0

Bundle:private static Bundle bundle = new Bundle(); –

回答

2

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

+0

我添加了像这样的savedInstanceState方法:http://www.beetxt.com/qUM/但它仍然不起作用:( –

+1

将它放在共享首选项中,保存实例状态是在活动 –

+1

onPause SharedPreferences之间移动。编辑器编辑器= getSharedPreferences(“my_settings”,0).edit(); editor.putBoolean(“ToggleButton”,true/**无论它应该在这里* /)commit();然后 onResume SharedPreferences prefs = getSharedPreferences (“my_settings”,0); boolean ToggleButtonState = prefs.getBoolean(“ToggleButton”,true); –