线程在java android中不工作

线程在java android中不工作,java,android,Java,Android,我是一个全新的android和java极客。所以,请容忍我。因此,我只有以下代码片段作为摘录:- Thread timer=new Thread(); try{ timer.sleep(2000); } catch(InterruptedException e){ e.printStackTrace(); } finally{ Intent openstartingpoint=new Intent("android.intent.actio

我是一个全新的android和java极客。所以,请容忍我。因此,我只有以下代码片段作为摘录:-

Thread timer=new Thread();
try{
    timer.sleep(2000);
}
catch(InterruptedException e){
    e.printStackTrace();                    
}
finally{
Intent openstartingpoint=new Intent("android.intent.action.START");
startActivity(openstartingpoint);
}
我在eclipse中收到的错误是:-应该以静态方式访问sleep方法 该应用程序也可以工作。但是,当前活动的文本未显示。我只有2秒钟的空白屏幕

==编辑==

但是,使用这段代码一切都很好。谁能告诉我原因吗

Thread timer=new Thread(){
public void run(){
    try{
    sleep(5000);
    }
catch(InterruptedException e){
    e.printStackTrace();                    
    }
    finally{
    Intent openstartingpoint=new Intent("android.intent.action.START");
    startActivity(openstartingpoint);
    }
}
};
    timer.start();

这只是一个警告,因为sleep是一个静态方法,它应该被称为

线程200

这意味着它将使当前线程处于睡眠状态200毫秒,所以即使您使用对象调用它,它仍将使当前线程而不是计时器处于睡眠状态

在案例一中:

说你在主线程中,然后打电话给

定时器200

它将把主线程作为我说的当前线程,计时器并没有启动,当前线程是主睡眠

但在第二种情况下:您正在创建的新threadtimer将处于睡眠状态。这就是区别


在第一个示例中,您并没有在正确的上下文中调用sleep方法。就像我之前说过的,这是Thread类中的静态方法,如果您想停止线程一段时间,必须在run方法中调用它。
还要注意线程的起始位置以及它是否会更改GUI,因为它会导致异常。

将该方法调用为thread.sleep2000

sleep是类线程的一个静态方法,因此可以直接使用classname访问它

在下面提到的第二段代码中,您没有收到错误,因为您正在创建一个匿名类,该类以静态方式直接使用Thread类调用sleep方法

    Thread timer=new Thread()
    {
      public void run(){
         try
            {
              sleep(5000);
            }
    catch(InterruptedException e)
       {
        e.printStackTrace();                    
       }
        finally
        {
        Intent openstartingpoint=new Intent("android.intent.action.START");
        startActivity(openstartingpoint);
        }
      }
    };
        timer.start();

静态方法是什么意思?如果考虑语法,它意味着使用静态关键字声明的方法,如:publicstaticvoid mainstringstr[]。概念上-这意味着该方法不是特定于对象的。在学习android之前,我强烈建议你要有扎实的Java知识,你永远不会后悔,如果你想用它来谋生的话,你就不会有很多麻烦了