1

私は、サーバーと通信したいfragmmentを持っていますが、問題は、私はいつも、私は私のフラグメントonCreateViewでこれを持って、NULLポインタにコミュニケーションの問題

を得ることです:

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

} 

- 私は、この致命的な例外取得:メイン

私はあなたを助けることができます

+0

HTTPSで、BrowseFragmentに続いて

public void pausePlay() { PauseRequest(); } 

を追加しました。 com/questions/39179317/mediabrowserservicecompat-bind-to-service –

+0

多分私は明らかにしません。サーバーが動作していないのは、インターフェイスであり、mCallback.onPlayPause( "PAUSE")でエラーが発生しています。 –

+0

インターフェイスを使用しようとするとフラグメントが表示されますか?フォーカスがなくなった場合、実装を呼び出す前にフラグメントが破棄される可能性があります。 'mCallback'がサービスのどこかで変更されないことは確かですか?私は似たようなものをまとめました。これは私のために働きます。 – Gary99

答えて

0

正しい方法で開始されている必要があり、私はこの方法はonCreateView()

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

簡単なクラスのようにAndroidでMusicServiceを作成することはできません。 // stackoverflowの:それはサービスであり、それはMusicServiceでhttps://medium.com/google-developers/mediabrowserservicecompat-and-the-modern-media-playback-app-7959a5196d90

+0

多分私は明らかではない。サーバーが動作していないのは、インターフェイスであり、mCallback.onPlayPause( "PAUSE")でエラーが発生しています。 –

関連する問題