gpt4 book ai didi

android - Thread.Sleep() Android 用户界面

转载 作者:太空狗 更新时间:2023-10-29 15:36:58 25 4
gpt4 key购买 nike

我正在为 Android 开发一款内存游戏,但遇到了问题。当用户点击第二张图片时 - 如果图片不相同,我希望第二张图片显示 1、2 秒。

我试过的是 sleep 1-2 秒。激活第二个图像后的 UI 线程 - 但这似乎不起作用 - 第二个图像似乎没有显示! (只显示第一张图片)

这是我的代码:

public void whenTapedImage(View v, int position)
{
i++;
ImageView imgV=(ImageView)v;
if(i%2!=0)
{
firstClick=position;
imgV.setImageResource(im.images.get(firstClick));
}
else
{
secondClick=position;
imgV.setImageResource(im.images.get(secondClick));
try {
Thread.currentThread().sleep(1000);
if(!(im.images.get(firstClick).equals(im.images.get(secondClick))))
{
Toast.makeText(easyGame.this, "Try Again!", Toast.LENGTH_SHORT).show();
im.notifyDataSetChanged();
gridview.setAdapter(im);
gridview.invalidate();
aux=player1Turn;
player1Turn=player2Turn;
player2Turn=aux;
}
else{
done=done+2;
ImageAdapter.keepVisibleViews.add(firstClick);
ImageAdapter.keepVisibleViews.add(secondClick);
if(player1Turn==true)
{
player1Score++;
String score=Integer.toString(player1Score);
score1.setText(score);
}
if(player2Turn==true)
{
player2Score++;
String score=Integer.toString(player2Score);
score2.setText(score);
}
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

我做错了什么?

最佳答案

您不能休眠 UI 线程,因为这会阻止 android 向您的 Activity 的 UI 传递任何其他事件。

相反,做一些事情,例如使用计时器,并让计时器的方法使用在 ui 线程工具上运行来进行所需的延迟更改。

为了健壮性,您可能需要实现一个状态机(正式地或有效地)来跟踪应该发生的事情 - 如果另一个按钮,您需要决定是否应该中止或强制执行当前延迟被推送,并使状态机适本地处理它。

关于android - Thread.Sleep() Android 用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11002657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com