java - 统计特定时间段内的数字,Java,Android

标签 java android count textview

如何在 5 秒内将 TextView 中的 0 计数到 number

number 变量始终具有不同的值,这就是为什么我需要它始终在 5 秒内从 0 计数到 number

如果我执行 whilenumber = 1982654324441,则需要很长时间才能计算出来。

这就是我现在的做法:

new Thread(new Runnable() {
    public void run() {
        while (counter < number) {
            try {
                Thread.sleep(0,01);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            textView.post(new Runnable() {
                public void run() {
                    textView.setText("" + counter);
                }
            });
            counter++;
        }
    }
}).start();

最佳答案

试试这个方法:它应该适用于所有大于 0 的数字,您还可以调整更新间隔。

final int TIME_TO_COUNT = 5000; //ms
//Update interval in ms. Consider that the screen cannot be updated as often as you want.
//17ms (about 60FPS) sound reasonable
final int UPDATE_INTERVAL = 17;
final int number = 5001; //Can be any number between 0 and Integer.MAX_VALUE;

new Thread(new Runnable() {
    public void run() {
        double counter = 0.0;
        while (counter < number) {
            try {
                Thread.sleep(UPDATE_INTERVAL);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            textView.post(new Runnable() {
                public void run() {
                    textView.setText(String.valueOf(Math.ceil(counter)));
                }
            });
            counter += (number / (double) TIME_TO_COUNT) * UPDATE_INTERVAL;
        }
    }
}).start();

关于java - 统计特定时间段内的数字,Java,Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34434969/

相关文章:

android - Http在android中发布高分辨率图像

Android:如何在 ActionBar 中显示图标而不是在选项菜单中?

mysql - 具有重复项的总行数

sql - 我需要做一个子查询

java - 在 weblogic 中安排一个 Java 程序每天运行

java - 捕获单独的异常或使用 instanceof - Java 6

Java:如何用唯一的一列填充jtable?

java - 一个采访话题: What can go wrong with this code?

java - threadid=1 : thread exiting with uncaught exception (group=0x4001d5a0)

专家的 SQL 嵌套计数