[英]Integer value not increment every time
我聲明了一個 int 值,它試圖增加每次按鈕點擊,但有些時間值不增加,有些在 2 或 3 次點擊后增加工作。 我總是得到日志,所以點擊事件沒有問題,已經嘗試過沒有靜態但仍然無法正常工作。
public static int TotalScore = 0;
btnsubmit.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
initScoreSubmit();
}
});
public void initScoreSubmit()
{
TotalScore++;
txtTotalPoint.setText("Total Point: " + String.valueOf(TotalScore));
settings.set(AppSettings.Key.UserTotalPoint, TotalScore);
Log.d(TAG, "Total_point "+TotalScore);
}
你能告訴我為什么不是靜態值或只有 int 不起作用。
因為 Java 內存模型。
如果一個線程寫入一個變量而另一個線程讀取該變量,則保證第二個線程看到第一個寫入的值的唯一方法是:
volatile
,AtomicInteger
。 變量應該是final
。您需要閱讀 Oracle 並發教程,特別是有關同步的部分:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.