Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 存储由处理程序运行的递归Runnable的运行计数的最佳方法?_Java_Android_Asynchronous - Fatal编程技术网

Java 存储由处理程序运行的递归Runnable的运行计数的最佳方法?

Java 存储由处理程序运行的递归Runnable的运行计数的最佳方法?,java,android,asynchronous,Java,Android,Asynchronous,已经有一些类可以替代,比如,或类似的,但略有不同 实例化该类的对象,然后可以简单地调用各种方法来更改该对象的内部值 这些等级还提供所需的螺纹安全性。如果没有该属性,您的计数器不太可能正确计数 您可以使用sendMessageDelayed()而不是使用postdayed()。您可以发送一条消息,指示您要运行该可运行状态,然后使用arg1字段存储当前计数 class Counter { int count; Counter() { coun

已经有一些类可以替代,比如,或类似的,但略有不同

实例化该类的对象,然后可以简单地调用各种方法来更改该对象的内部值


这些等级还提供所需的螺纹安全性。如果没有该属性,您的计数器不太可能正确计数

您可以使用
sendMessageDelayed()
而不是使用
postdayed()
。您可以发送一条
消息
,指示您要运行该可运行状态,然后使用
arg1
字段存储当前计数

class Counter {
        int count;

        Counter() {
            count = 0;
        }

        public void addOne() {
            count++;
        }
    }
private void doWork(整数计数器){

如果(计数器),您可以在Runnable中添加一个
int count
字段。非常感谢您的快速接受!
class Counter {
        int count;

        Counter() {
            count = 0;
        }

        public void addOne() {
            count++;
        }
    }
private static final int WHAT_DO_WORK = 1;
final Handler handler = new Handler() {

    @Override
    public void handleMessage(Message msg) {
        if (msg.what == WHAT_DO_WORK) {
            doWork(msg.arg1);
        }
    }
};
private void doWork(int counter) {
    if (counter <= 200) {
        doThing();
        int arg1 = count + 1;
        Message message = Message.obtain(handler, WHAT_DO_WORK, arg1, 0);
        handler.sendMessageDelayed(message, 50);
    }
}