Неправильное состояние кнопки изображения после изменения ориентации - PullRequest
0 голосов
/ 01 ноября 2019

Я получаю логическое значение из моего сервиса, которое возвращает 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);
            }

        }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...