什么相当于 Android/Java 中的 JavaScript setInterval/setTimeout?

2022-08-30 02:31:52

谁能告诉我Android是否存在setInterval/setTimeout的等效物?有没有人有任何关于如何做到这一点的例子?


答案 1

与Android一样,有很多方法可以做到这一点,但是假设你只是想稍后在同一线程上运行一段代码,我使用这个:

new android.os.Handler(Looper.getMainLooper()).postDelayed(
    new Runnable() {
        public void run() {
            Log.i("tag", "This'll run 300 milliseconds later");
        }
    }, 
300);

..这几乎等同于

setTimeout( 
    function() {
        console.log("This will run 300 milliseconds later");
    },
300);

答案 2

setInterval()

每 n 毫秒重复自身的函数

Javascript

 setInterval(function(){ Console.log("A Kiss every 5 seconds"); }, 5000);

近似 java 等效值

new Timer().scheduleAtFixedRate(new TimerTask(){
    @Override
    public void run(){
       Log.i("tag", "A Kiss every 5 seconds");
    }
},0,5000);

setTimeout()

仅在 n 毫秒后工作的函数

Javascript

setTimeout(function(){ Console.log("A Kiss after 5 seconds"); },5000);

近似 java 等效值

new android.os.Handler().postDelayed(
    new Runnable() {
        public void run() {
            Log.i("tag","A Kiss after 5 seconds");
        }
}, 5000);