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);
}
}