2 回答

TA貢獻1828條經(jīng)驗 獲得超4個贊
已經(jīng)有您可以使用的類,例如AtomicInteger或類似但略有不同的 LongAdder。
您實例化該類的一個對象,然后您可以簡單地調(diào)用將更改該對象的內(nèi)部值的各種方法。
這些類還提供了所需的線程安全。如果沒有該屬性,您的計數(shù)器就不太可能正確計數(shù)!

TA貢獻1770條經(jīng)驗 獲得超3個贊
而不是使用postDelayed(),你可以使用sendMessageDelayed()。您可以發(fā)送一個Message指示您要運行該可運行文件的信息,然后使用該arg1字段來存儲當前計數(shù)。
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);
}
}
添加回答
舉報