I am running an audio file in a fragment using the following code:
public class AudioFragment extends Fragment implements View.OnClickListener {
    private Runnable runnable;
    private Handler handler;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        View view= inflater.inflate(R.layout.fragment_audio,container,false);
        btnBwd=view.findViewById(R.id.btnBwd);
        btnPlay=view.findViewById(R.id.btnPlay);
        seekBar=view.findViewById(R.id.seekBar);
        handler=new Handler();
        btnBwd.setOnClickListener(this);
        btnPlay.setOnClickListener(this);
        mediaPlayer = MediaPlayer.create(view.getContext(),R.raw.play);
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){
           @Override
           public void onPrepared(MediaPlayer mediaPlayer){
               seekBar.setMax(mediaPlayer.getDuration());
               mediaPlayer.start();
               changeSeekBar();
           }
        });            
        return view;
    }
    private  void changeSeekBar() {
        seekBar.setProgress(mediaPlayer.getCurrentPosition());
        if(mediaPlayer.isPlaying()){
            runnable = new Runnable() {
                @Override
                public void run() {
                    changeSeekBar();
                }
            };
            handler.postDelayed(runnable,1000);
        }
    }
}
This fragment is created in another activity and when this fragment is replaced using fragmentTransaction.replace(), the music still keeps playing for some reason. Is it because there was a Runnable object involved. Can I send some signal to the process?
What is a good way to handle this either from my activity or the fragment itself?