2 回答
TA贡献1828条经验 获得超4个赞
已经有您可以使用的类,例如AtomicInteger或类似但略有不同的 LongAdder。
您实例化该类的一个对象,然后您可以简单地调用将更改该对象的内部值的各种方法。
这些类还提供了所需的线程安全。如果没有该属性,您的计数器就不太可能正确计数!
TA贡献1770条经验 获得超3个赞
而不是使用postDelayed(),你可以使用sendMessageDelayed()。您可以发送一个Message指示您要运行该可运行文件的信息,然后使用该arg1字段来存储当前计数。
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);
}
}
添加回答
举报