Android Thread使UI成为空白屏幕

时间:2011-04-11 14:26:00

标签: android multithreading

我在我的申请中写了Thread。当线程开始运行时,UI屏幕变为空白。怎么能避免这个?

public class SetTickerText extends Thread
{
    @Override
    public void run()
    {
        while(true)
        {
            SystemClock.sleep(25000);
            Log.i("Map", "after wait");
        }
    }

3 个答案:

答案 0 :(得分:3)

它会像(我附近没有编译器):

new SetTickerText().start()

基本上,当你告诉线程对象启动时,它会旋转新线程,然后为你调用run。你正在做的是从UI线程调用run,就像任何其他函数一样,所以它阻止你的UI线程返回

答案 1 :(得分:1)

您的主要问题是使用SystemClock.sleep。这种方法会迫使CPU进入深层次。你想要做的是睡眠使用Thread.sleep完成的当前线程:http://developer.android.com/reference/java/lang/Thread.html#sleep(long)。

答案 2 :(得分:0)

对我来说,问题是我打电话

thread.run()

代替

thread.start()

错误。

了解更多详情,

https://beginnersbook.com/2015/03/why-dont-we-call-run-method-directly-why-call-start-method/