【发布时间】:2014-09-01 17:05:33
【问题描述】:
我有一个 AtomicInteger 变量 (CurrentCycle),它正在一个单独的线程中更新到我的 UI 线程。我正在尝试根据 AtomicInteger 的值更新 UI 字段中的文本字段,而在 UI 线程中没有丑陋的 while 循环。
我花了几天的时间在网上搜索相关查询,但没有得到任何结果。我正在寻找最简单的方法来做到这一点。我知道那里有类似问题的帖子,但我无法使用它们,因为它们过于抽象或满足不同的需求。
我的主要问题是: 1.我需要注册一个监听器来做这个还是有更简单的方法? 2. 我在哪里以及如何注册监听器?我是否必须设置一个单独的接口类(如果可能,我想避免这种情况)。 3. 能否请一些我可以使用的真实示例 - 到目前为止,抽象的解释对我没有帮助!
我在下面包含了我的关键代码(它没有做任何事情,因为该方法还没有被触发)。您能提供的任何帮助将不胜感激。
// MyActivity.java
// Declaration (do I need this?)
AtomicInteger CurrentCycle = new AtomicInteger(0);'
// Method which doesn't appear to be firing when CurrentCycle Changes...
public void setVariableChangeListener(VariableChangeListener variableChangeListener) {
this.variableChangeListener = variableChangeListener;
if ((CurrentCycle != PreviousCycle ) && (this.variableChangeListener !=null)) {
Toast.makeText(getApplicationContext(), "Test - code on variable change is firing.", Toast.LENGTH_SHORT).show();
PreviousCycle=CurrentCycle;
}
【问题讨论】:
标签: java multithreading variables listener