线程在java android中不工作
我是一个全新的android和java极客。所以,请容忍我。因此,我只有以下代码片段作为摘录:-线程在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
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知识,你永远不会后悔,如果你想用它来谋生的话,你就不会有很多麻烦了