我试图在我的应用程序中使用媒体播放器,并且试图阻止媒体播放器进行其他活动,我的编码如下:

FirstActivity:

public void stop() {

    if (playPause == false) {

        control.setBackgroundResource(R.drawable.play);

        mediaPlayer.stop();
        new Player().cancel(true);
        media.stop();
        media.reset();
        mediaPlayer.reset();
        if (mediaPlayer.isPlaying())
            mediaPlayer.stop();
        mediaPlayer.reset();
        media.stop();

        playPause = true;
    } else {
        control.setBackgroundResource(R.drawable.pause);
        if (intialStage) {
            new Player()
                    .execute(URL);
        } else {
            if (!mediaPlayer.isPlaying())
                mediaPlayer.start();
        }
        playPause = false;
    }
}


SecondActivity:

计时器结束后必须停止媒体播放器:

        @Override
        public void onFinish() {
            textViewTime.setText(hmsTimeFormatter(timeCountInMilliSeconds));
            // call to initialize the progress bar values
            setProgressBarValues();
            // hiding the reset icon
            imageViewReset.setVisibility(View.GONE);
            // changing stop icon to start icon
            imageViewStartStop.setImageResource(R.drawable.icon_start);
            // making edit text editable
            editTextMinute.setEnabled(true);
            // changing the timer status to stopped
            timerStatus = TimerStatus.STOPPED;

            MainActivity main = new MainActivity();
            main.stop();
        }

    }.start();
    countDownTimer.start();
}


上面的编码显示错误:

 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setBackgroundResource(int)' on a null object reference
                                                                         at com.digitamatix.mukilfm.MainActivity.stop(MainActivity.java:549)


我必须在第一次活动中停止媒体播放器,请帮助我进行编码以解决问题

最佳答案

看到我已经使用startActivityForResult开始了活动。 onActivityResult您将获得结果。

startActivityForResult(Activity1.createIntent(this), 1001);


//handle callback result
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == 1001) {

        }
    }

}


下面的代码将在您要回调并完成该活动的下一个活动中调用。您可以以此意图传递任何值。

 Intent intent = new Intent();
 setResult(RESULT_OK, intent);
 finish();


因此,根据要求,您可以使用此功能。停止媒体播放器。其他选项也本地广播。
希望这会帮助你。

关于android - 如何以编程方式阻止媒体播放器退出Android中的其他 Activity ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46177105/

10-09 13:31