应用程序返回奇怪的值

时间:2012-03-07 22:19:33

标签: android multithreading

我的应用程序有一个奇怪的问题。在启动时,它播放视频剪辑,这是通过使用线程完成的。我想要做的是让主线程在继续之前等待工作线程完成。 但是,无论我对线程中的视频实例做什么,我只得到似乎不正确的值。例如,video.GetHeight返回负整数值。即使视频实际正在播放,IsPlaying也始终返回false,依此类推。 视频启动并完美运行,但我试图在线程中的视频实例上调用的其他方法的所有值都返回奇怪的值。 谁知道问题出在哪里?

这是Thread类:

private class ThreadClass extends Thread {
    public VideoView video;
    public int ID = -1;
    @Override public void run() {
        if(this.ID == 1)
        {
            video = (VideoView)findViewById(R.id.introvideo);
            video.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.intro);
            video.start();
            System.out.println("Input ID: " + this.ID);
        }
        else
            System.out.println("Unexpected ID (" + this.ID + ")");
    }


}

1 个答案:

答案 0 :(得分:0)

使用UI线程。查看this !