Java 等待处理程序完成

Java 等待处理程序完成,java,android,Java,Android,我只是想通过媒体播放器播放音乐n秒 我的第一个文件: public void Play_Music() { mTestUtils.ConnectDevice(); mTestUtils.playMusic(MUSIC_PATH, STREAM_TIME); mTestUtils.DisconnectDevice((); } 我的第二个文件: public void playMusic(String music_path, int stream_time) {

我只是想通过媒体播放器播放音乐n秒

我的第一个文件:

public void Play_Music() {
    mTestUtils.ConnectDevice();
    mTestUtils.playMusic(MUSIC_PATH, STREAM_TIME);
    mTestUtils.DisconnectDevice(();
}
我的第二个文件:

public void playMusic(String music_path, int stream_time) {

    MediaPlayer mMediaPlayer = new MediaPlayer();

    try {
        Log.i(TAG, "In Play mUsic");
        mMediaPlayer.setDataSource(music_path);
        mMediaPlayer.prepare();
        mMediaPlayer.start();
        new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
            @Override
            public void run() {
                Log.i(TAG, "In Handler");
                mMediaPlayer.stop();
                mMediaPlayer.release();
            }
        }, stream_time);

        Log.i(TAG, "Done Playing");
    } catch (IOException e) {
        e.printStackTrace();
    }
    return;
}
这里我的问题是如何让处理程序等待给定的时间。 这里发生的是调用play music,它执行该函数并立即返回以执行第一个文件中的下一条语句。我想等到处理函数完成,然后我需要将控件传递给第一个文件


提前感谢。

我从您的问题中了解到,当您调用playMusic()方法时,它会开始播放并立即停止您的音乐。因为代码从上到下运行

  • 首先,连接设备
  • 第二,你在演奏音乐
  • 第三,您正在断开设备
  • 第二步后发生的情况是,您立即调用断开设备。我不知道这个函数做什么。如果要在处理程序完成后调用断开连接函数,则需要使用回调方法。处理程序将告诉(通过回调方法)何时调用断开连接方法。我希望我能回答这个问题

    下面是一些有用的链接,可用于指导如何使用回调接口

    https://stackoverflow.com/questions/3398363/how-to-define-callbacks-in-android
    
    https://stackoverflow.com/questions/18054720/what-is-callback-in-android
    

    然后在释放媒体播放器后,用单独的方法编写代码并从处理程序内部调用它