android - Handler.postDelayed(...) 不会延迟 Runnable

标签 android android-mediaplayer runnable android-handler postdelayed

我自己实现了一个 OnCompletionListener,如下所示:

public class SongEndCompletionListener  implements OnCompletionListener{

    String nextView;
    Context actualActivity;
    int stopTime;

    public SongEndCompletionListener(Context activity, String nextView, int time) {
        this.nextView = nextView;
        actualActivity = activity;
    }
    @Override
    public void onCompletion(MediaPlayer arg0) {


            Handler handler = new Handler(); 
            handler.postDelayed(new Runnable() { 
                 public void run() { 
                        try {
                     Intent stopplay;
                     stopplay = new Intent(actualActivity,Class.forName(nextView));
                     actualActivity.startActivity(stopplay);    
                 } catch (ClassNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    } 
                 } 
            }, stopTime); 


    }
}

我想让它暂停 stopTime 秒,但它实际上做的是音频文件一结束就跳转到下一个 View 。 您能否指出我错在哪里或我如何以不同方式延迟切换到另一个 Activity?

感谢每一个提示!

最佳答案

我知道为什么你的 Handler 没有延迟发布。

It is because your stopTime is 0.

需要为“stopTime”设置一个值,否则为0。 例如延迟 Runnable 一秒钟:

stopTime = 1000; // milliseconds

或者使用你的构造函数:

public SongEndCompletionListener(Context activity, String nextView, int time) {
    this.nextView = nextView;
    actualActivity = activity;
    this.stopTime = time; // you forgot this
}

关于android - Handler.postDelayed(...) 不会延迟 Runnable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18450932/

相关文章:

java - 在 Java 中通过 lambda 返回值

java - 如何实现带有超时的 Runnable?

android - 将 Intent 从 ListView 发送到另一个 Activity

android - 将 Google map 应用程序移植到 Osmdroid - 覆盖问题

java - (Android Media Player) 为什么不能使用prepareAsync()而不是prepre()与AsyncTask

java - Thread start() 和 Runnable run() 有什么区别

java - 为什么我的适配器不工作?如何解决NullPointerException错误?

android - CameraX - 查找 Android 设备的焦距

android - 如何使用 MediaExtractor 和 MediaCodec 设置流式音频?

android - 当应用程序最小化/关闭时,如何停止在类里面播放媒体播放器?