[英]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.