OGeek|极客世界-中国程序员成长平台

标题: android - 如何在定义的时间间隔在 Android 中运行 Runnable 线程? [打印本页]

作者: 菜鸟教程小白    时间: 2022-8-1 01:20
标题: android - 如何在定义的时间间隔在 Android 中运行 Runnable 线程?

我开发了一个应用程序以在 Android 模拟器屏幕中以定义的时间间隔显示一些文本。我正在使用 Handler类(class)。这是我的代码 fragment :

handler = new Handler();
Runnable r = new Runnable() {
    public void run() {
        tv.append("Hello World");               
    }
};
handler.postDelayed(r, 1000);

当我运行这个应用程序时,文本只显示一次。为什么?



Best Answer-推荐答案


您的示例的简单修复是:

handler = new Handler();

final Runnable r = new Runnable() {
    public void run() {
        tv.append("Hello World");
        handler.postDelayed(this, 1000);
    }
};

handler.postDelayed(r, 1000);

或者我们可以使用普通线程,例如(使用原始 Runner):
Thread thread = new Thread() {
    @Override
    public void run() {
        try {
            while(true) {
                sleep(1000);
                handler.post(this);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
};

thread.start();

您可以将可运行对象视为可以发送到消息队列以执行的命令,而将处理程序视为用于发送该命令的辅助对象。

更多详情在这里 http://developer.android.com/reference/android/os/Handler.html

关于android - 如何在定义的时间间隔在 Android 中运行 Runnable 线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1921514/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4