java - 我怎样才能让 wait/sleep 以我想要的方式在 java 中工作?

标签 java android multithreading sleep

我正在尝试完成一些非常简单的事情。首先,加载我的布局 (main.xml)。然后等待1秒,修改一张图片,等待1秒修改为第三张图片。 (当然,我的最终目标更复杂,但我什至无法让它发挥作用)。

基本上,我在加载应用程序时遇到黑屏。它会保持这种状态,直到所有等待结束,然后显示最终图像。这是我的代码:

super.onCreate(savedInstanceState);
setContentView(R.layout.main);        

ImageCard[0] = (ImageView)findViewById(R.id.imageView11);
Thread.sleep(1000);
ImageCard[0].setImageDrawable(getResources().getDrawable(R.drawable.secondimage));
Thread.sleep(1000);
ImageCard[0].setImageDrawable(getResources().getDrawable(R.drawable.thirdimage));

ImageCard[0] 是我要更改的图像。它加载到 main.xml 中,如果我删除其余代码,它会正常显示。

如果我将 sleep 时间更改为 5000,则需要 10 秒才能最终从黑屏中消失并显示第三张图像。这就是我知道它不仅加载缓慢,而且实际上在等待的方式。

好像不是按顺序运行的。我不是 Java 专家,所以我假设我在做一些愚蠢的事情......

感谢您的帮助!

最佳答案

我认为您正在阻止 UI Thead。尝试 Handler.postDelayed在静态处理程序对象上。

关于java - 我怎样才能让 wait/sleep 以我想要的方式在 java 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7827110/

相关文章:

java - 忽略聊天中的 ChatState 数据包并在 SMACK 控制台中登录聊天状态

android - java.lang.IllegalStateException : attempt to re-open an already-closed object On Orientation Change

android - 崩溃:android.widget.ListView.layoutChildren 中的 java.lang.IllegalStateException

ios - objective-c 线程 1 信号 SIGSTOP 应用程序崩溃

c++ - 并发队列内存消耗爆炸,然后程序崩溃

java - android比较2个日期来找出差异

java - 我如何从缓冲读取器输入字符串?

java - SQL查询语句从oracle数据库中检索具有CLOB数据的记录

android - Menu.xml 以编程方式

c# - 在 .Net 中实现并行任务队列