我有一个方法可以在发生某些事情时更改布尔变量的值。
for (Message msg : msgs) {
if (!msgs_array.contains(msg)) {
Log.d("Chat", "Message : " + msg.getTitle() + ": "
+ msg.getMessage());
msgs_array.add(msg);
newMsg = true;
Log.d("Chat", "New Message ? " + newMsg);
}
}
我的构造函数中有一个计时器:
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("Chat", "Has New Msg ? " + newMsg);
}
});
}
}, 2000, 2000);
当条件成立时,我进入了日志猫:新消息?真正 但我的计时器仍将其记录为假..
所以..任何想法? :S
答案 0 :(得分:0)
嗯,这不能解答您的问题,但我建议您使用handler
而不是timertask
。
在此处阅读http://www.mopri.de/2010/timertask-bad-do-it-the-android-way-use-a-handler/
你可以使用处理程序来完全复制它: - /
答案 1 :(得分:0)
我认为string comparing
正在您的代码中运行,用equals()
替换变量。
试试这个,希望有所帮助
for (Message msg : msgs) {
if (!msg.equals(msgs_array)) {
Log.d("Chat", "Message : " + msg.getTitle() + ": "
+ msg.getMessage());
msgs_array.add(msg);
newMsg = true;
Log.d("Chat", "New Message ? " + newMsg);
}
}