2017-07-20 20 views
1

kotlinに待機機能はありますか?(私はタイマースケジュールを意味するわけではありませんが、実際には実行を一時停止します)。私はあなたがThread.sleep()を使用できることを読んだ。しかし、機能が見つからないので、私のためには機能しません。 https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#sleep(long)Kotlin - 待機機能

public static void sleep(long millis) 
        throws InterruptedException 

例えば:

+0

スリープは標準のJDKの一部であるため、常に利用できます。適切なパラメータで呼び出さなかっただけです。 – guenhter

答えて

3

スレッドの睡眠は、常にどのくらい待つために時間がかかります

Thread.sleep(1_000) // wait for 1 second 

あなたが目を覚ますためにいくつかの他のスレッド、多分 `オブジェクト#待ち()を待ちたい場合は、」良いだろう

https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#wait()

public final void wait() 
       throws InterruptedException 

その後、別のスレッドが持っています電話するyourObject#notifyAll()

スレッド1とスレッド2株Object o = new Object()

Thread1: o.wait()  // sleeps until interrupted 
Thread2: o.notifyAll() // wake up ALL waiting Threads of object o 
+0

ありがとうございます。私の間違いは、私はスレッドオブジェクトをインスタンス化したということでした... – OhMad

3

それはアンドロイドのために働くだろう、これを試してみてください。

 Handler().postDelayed({ 
     // This method will be executed once the timer is over 

    }, 1000) 
} 
+0

私の知る限り、これはAndroid上でのみ動作します。あなたはそれに言及すべきです – Mibac

0

新しいコルーチン機能を使用すると、このようなシグネチャを持つ非ブロックdelay機能を使用することができますKotlinバージョン1.1で利用可能となっていますので:それはまだkotlinx.coroutines.experimentalパッケージに配置されてKotlin 1.2では

suspend fun delay(time: Long, unit: TimeUnit = TimeUnit.MILLISECONDS)

を。コルーチンの実験的な状態はhereと記述されています。

関連する問題