我是Android开发新手,遇到了同步问题。我做了一个简单的匹配游戏,你一次翻转两张牌,并尝试找到匹配。我想要做的是翻转前两张牌:
我试图通过标记它同步来保护我的“flipIfFlipped”例程,并检查以确保卡片还没有被翻转,但我仍然得到这种双重翻转行为(我的力翻转必须首先翻转它,然后计时器再次翻转它,反之亦然。)
这是我的CardView(ImageView子类)上的方法:
public synchronized void flipIfFlipped() {
if (this.flipped) {
this.flip();
}
}
这是我的onItemClickListener顶部的力量翻转,如果我们点击一张卡而两个仍然在上:
CardView lastCard = game.getLastCard();
if (null != lastCard){
lastCard.flipIfFlipped();
}
CardView secondLastCard = game.getSecondLastCard();
if(null != secondLastCard) {
secondLastCard.flipIfFlipped();
}
这是我的尝试延迟翻转,后来,如果我们只是不匹配的卡:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
clickedImage.flipIfFlipped();
lastCard.flipIfFlipped();
}
}, 3000L);
同样,我是一个新手,所以我肯定我可能会遗漏一些基本的东西。