Я получаю логическое значение из моего сервиса, которое возвращает true, если воспроизводится песня.
После изменения ориентации я вызываю updateSongInfo () в onResume ().
Эти журналы возвращают всезначения из моего класса обслуживания.
Log.d(TAG, "songIndex: " + songIndex);
Log.d(TAG,"songList: " + songList);
Log.d(TAG,"isPlaying: " + isPlaying);
isPlaying возвращает true в logcat, когда я меняю ориентацию.
Но по какой-то причине это если оператор else не вызывается, когда я меняю ориентацию, он дает правильную кнопку только тогда, когда я ставлю приложение на передний план и снова открываю его.
Но как я могу получить правильное изображение при изменении ориентации?
Это не вызывается при изменении ориентации
if (isPlaying){
mBtnPlayPause.setImageResource(R.drawable.ic_action_pause_white);
Log.d(TAG,"value test: " + isPlaying);
}else{
mBtnPlayPause.setImageResource(R.drawable.ic_action_play);
Log.d(TAG,"value test: " + isPlaying);
}
Код в updateSongInfo ()
private void updateSongInfo(){
if (Main.getInstance().mServiceIsBound) {
if (songList != null && !songList.isEmpty()) {
if (mSlideUpPanel.getPanelState() == SlidingUpPanelLayout.PanelState.HIDDEN){
mSlideUpPanel.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED);
}
songList = Main.getInstance().mediaPlayerService.getSongList();
songIndex = Main.getInstance().mediaPlayerService.getSongIndex();
isPlaying = Main.getInstance().mediaPlayerService.mpIsPlaying();
Log.d(TAG, "songIndex: " + songIndex);
Log.d(TAG,"songList: " + songList);
Log.d(TAG,"isPlaying: " + isPlaying);
tvSongTitle.setText(songList.get(songIndex).getTitle());
tvArtistName.setText(songList.get(songIndex).getArtist());
tvAlbumName.setText(songList.get(songIndex).getAlbum());
String songListSize = (songIndex + 1) + "/" + songList.size();
tvSongListSize.setText(songListSize);
loadAlbumArt();
loadAlbumArtBottom();
startAnimation();
updateProgressBar();
if (isPlaying){
mBtnPlayPause.setImageResource(R.drawable.ic_action_pause_white);
Log.d(TAG,"value test: " + isPlaying);
}else{
mBtnPlayPause.setImageResource(R.drawable.ic_action_play);
Log.d(TAG,"value test: " + isPlaying);
}
}
}