java - Android/Java - 暂停线程

标签 java android multithreading

我对此很陌生,所以也许这对每个人来说都是微不足道的,但我就是不明白为什么这不起作用。我已经读过它,尝试了很多方法,但仍然不起作用。所以我想暂停android(java)中的一个线程。我希望它运行,卡住屏幕 1 秒,然后继续工作。就这样。为什么这不起作用?

public class Game extends Activity {

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.game);

        runner.join();
        runner.start();

        // do stuff

        pause();

        // do stuff


}

private boolean running = true;
private boolean paused = false;

public void setRunning(boolean run) {
    running = run;
}

public void pause() {
    paused = true;
}

Thread runner = new Thread() {

    public void run() {

        while (running) {

            try {

                //do stuff

                Thread.sleep(100);

                while (paused) {
                    try {
                        Thread.sleep(1000);
                    } catch (Exception e) {
                    } finally {
                        paused = false;
                    }
                }

            } catch (Exception e) {
            }
        }

    }

};

}

最佳答案

您应该更改您编码的方法调用的顺序:

    runner.join();
    runner.start();

更改为:

runner.start();
runner.join();

它应该可以工作。

关于java - Android/Java - 暂停线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7794684/

相关文章:

java - 开关有什么问题?

java - 开发java(文件)交换格式

android - 如何停止在 Android 上以编程方式播放通知声音

在 Fragment 和 Activity 之间创建通信监听器时出现 Android NullPointerException

java - Android 资源 : SQLiteDatabase Missing databases/***. 资源或目标文件夹中的 zip 文件不可写

c++ - 将 MFC 对话框从 STA 更改为 MTA?

java - 如何在tomcat中确定特定线程的优先级

java - Hibernate 条件返回包含列值的列表

java - 如何更改一堆 java 可序列化类的包

c# - 向WPF Prism MVVM应用程序添加后台线程