Masalah jeda/lanjutkan ToggleButton Android

Saya mempunyai masalah dengan ToggleButton saya.

Pertama kali saya mengkliknya, itu mematikan suara media. Kedua kalinya, itu membunyikannya. Untuk menyimpan status ToggleButton saya telah menggunakan metode onPause/onResume. Namun masalahnya adalah jika saya meluncurkan aktivitas, lalu saya menekan tombol sakelar, saya menjedanya dan ketika saya akhirnya melanjutkannya, tombol sakelar tidak berfungsi lagi dan aplikasi tetap tidak bersuara. (Bahkan jika negara terselamatkan)

Bagian Aktivitas Saya:

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));
}

Saya tahu saya mungkin harus menggunakan kode jeda/lanjutkan lain di suatu tempat, dapatkah Anda membantu? Terima kasih :)

Berikut log saat saya membuka aplikasi, membuka aktivitas tombol, mengklik tombol, menjeda aktivitas, melanjutkan, mengklik tombol lagi, dan menjeda aktivitas lagi:

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

person Giulio Tedesco    schedule 26.01.2014    source sumber
comment
sudahkah Anda mencoba mengeluarkan log dalam metode onresume dan jeda untuk melihat bahwa pada saat macet, nilai yang telah Anda simpan, masih merupakan nilai yang Anda keluarkan?   -  person Lena Bru    schedule 26.01.2014
comment
bagaimana cara mendapatkan bundelnya?   -  person Lena Bru    schedule 26.01.2014
comment
Bundel: bundel Bundel statis pribadi = Bundel baru();   -  person Giulio Tedesco    schedule 26.01.2014
comment
apakah Anda menyimpannya dalam status aktivitas saat aktivitas tersebut dimusnahkan?   -  person Lena Bru    schedule 26.01.2014
comment
Dengan metode onSaveInstanceState? tidak, aku tidak melakukannya :/   -  person Giulio Tedesco    schedule 26.01.2014
comment
ketika aktivitas Anda dimusnahkan, dan Anda tidak menyimpan status dalam beberapa persistensi, ketika Anda kembali ke sana, oncreate berjalan lagi, dan bundel Anda kosong, jadi opsi untuk kunci ToggleButton kosong, sehingga mengembalikan false, dan Anda tombol sakelar tetap diam   -  person Lena Bru    schedule 26.01.2014


Jawaban (1)


ketika aktivitas Anda dimusnahkan, dan Anda tidak menyimpan status dalam beberapa persistensi, saat Anda kembali ke sana, oncreate berjalan lagi, dan paket Anda kosong, jadi opsi untuk kunci "ToggleButton" kosong, sehingga mengembalikan false, dan tombol sakelar Anda tetap senyap

person Lena Bru    schedule 26.01.2014
comment
Saya menambahkan metode saveInstanceState seperti itu: beetxt.com/qUM tetapi masih tidak berhasil : ( - person Giulio Tedesco; 26.01.2014
comment
letakkan di preferensi bersama, status instance yang disimpan adalah berpindah antar aktivitas - person Lena Bru; 26.01.2014
comment
onPause SharedPreferences.Editor editor = getSharedPreferences(my_settings,0).edit(); editor.putBoolean(ToggleButton,true/**whicheverState seharusnya ada di sini*/).commit(); dan kemudian onResume SharedPreferences prefs = getSharedPreferences(my_settings,0); boolean ToggleButtonState = prefs.getBoolean(ToggleButton,true); - person Lena Bru; 26.01.2014