Проблемы со связью между фрагментом и сервером

У меня есть фрагмент, который я хотел бы связать с сервером, но проблема в том, что я всегда получаю нулевой указатель

У меня есть это в моем фрагменте onCreateView:

public class BrowseFragment extends Fragment implements View.OnClickListener{

private MusicService mMusicService;


@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment, container, false);



    mMusicService = new MusicService(this);
             mMusicService.setCallback(new MusicService.Callback() {


                                @Override
                                public void onPlayPause(String state) {
                                    //Do something
                                }
                            });

}
}

Это мой сервис:

 public class MusicService extends MediaBrowserServiceCompat {


public interface Callback {
        public void onPlayPause(String state);
    }

    public void setCallback(Callback callback) {
        this.mCallback = callback;
    }





private void PauseRequest() {
        mPlayback.pause();
        //if (mCallback != null) {
            mCallback.onPlayPause("PAUSE");
        //}
}

}

Я получаю это ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: главная

Process: com.geobytenet.mediaplayer, PID: 3262
java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.android.mediabrowserservice.MusicService$Callback.onPlayPause(java.lang.String)' on a null object reference

Я надеюсь, что вы можете помочь мне

2 ответа

Решение

В MusicService я добавил этот метод

    public void pausePlay() {
        PauseRequest();
    }

Затем в BrowseFragment, в onCreateView()

    Button button = (Button)rootView.findViewById(R.id.button_play_pause);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mMusicService.pausePlay();
        }
    });

Вы не можете создать MusicService в Android, как простой класс. Это сервис, и его нужно правильно запустить https://medium.com/google-developers/mediabrowserservicecompat-and-the-modern-media-playback-app-7959a5196d90

Другие вопросы по тегам