0

私は 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);
}

私が日食で受け取っているエラーは次The method sleep() should be accessed in a static way
のとおりです: - アプリケーションも動作します。ただし、現在のアクティビティのテキストは表示されません。空白の画面が 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();
4

3 に答える 3

2

最初のものでは、正しいコンテキストで sleep() メソッドを呼び出しませんでした。前の人が言ったように、それは Thread クラスの静的メソッドであり、スレッドをしばらく停止したい場合は、run メソッドで呼び出す必要があります。また、例外が発生するため、スレッドを開始する場所と、GUI を変更する場合にも注意してください。

于 2013-10-19T14:07:04.923 に答える
2

メソッドを Thread.sleep(2000); として呼び出します。

sleep はクラス Thread の静的メソッドであるため、classname を使用して直接アクセスできます。

下記の 2 番目のコードでは、静的な方法で 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();
于 2013-10-19T14:21:40.000 に答える