Ich habe ein Checkbox
eingerichtet, jetzt, wenn es deaktiviert ist, sollte das mediaplayers
Sofort unmutiert werden und wenn es
Hauptcode des Programms:
%Vor% Versuchen Ändern von editor.commit
in editor.apply
als .commit
blockiert die Benutzeroberfläche beim Schreiben der freigegebenen Einstellung auf den Datenträger und wartet bis der Schreibvorgang abgeschlossen ist, damit die nächste Codezeile ausgeführt wird, wobei .apply
den freigegebenen Code sendet Präferenz schreiben an einen Worker Thread und führt somit die nächste Codezeile sofort aus, wie @Pavel es erwähnt hat. hier finden Sie weitere Informationen und dies ist das offizielle Dokument
1.Verwenden Sie Media Player onPrepared Listener und starten Sie den Media Player nur einmal, wenn die Daten vom Server abgerufen wurden.
%Vor%2. Ersetzen Sie dies durch die folgende Codezeile, da Sie SharedPreferences bereits als Membervariable deklariert haben. Behalten Sie nur eine Instanz von SharedPreference bei.
%Vor%mit
%Vor%3. Ersetzen Sie editor.commit () mit editor.apply ()
editor.commit () wartet, bis der Schreibvorgang für die nächste Zeile abgeschlossen ist und blockiert die Benutzeroberfläche beim Schreiben der gemeinsamen Einstellungen, aber editor.apply () schreibt auf die Festplatte, indem sie einen Arbeitsthread erstellt.
final SharedPreferences.Editor editor = mypref.edit();
Versuchen Sie, diese Zeichenfolge in onCheckChanged()
zu verschieben
und verwende auch editor.apply()
anstelle von editor.commit();
Versuchen Sie, in shared preference innerhalb von onCheckChanged zu editieren:
%Vor%Tags und Links java android audio checkbox android-mediaplayer