谁能告诉我Android上是否有setInterval/setTimeout的等价物?有谁有关于如何做到这一点的例子吗?
发布于 2013-08-22 21:06:51
和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);
发布于 2015-01-28 23:11:40
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);
发布于 2013-06-07 17:43:13
如果你不担心唤醒你的手机或者让你的应用起死回生,试试:
// Param is optional, to run task on UI thread.
Handler handler = new Handler(Looper.getMainLooper());
Runnable runnable = new Runnable() {
@Override
public void run() {
// Do the task...
handler.postDelayed(this, milliseconds) // Optional, to repeat the task.
}
};
handler.postDelayed(runnable, milliseconds);
// Stop a repeating task like this.
handler.removeCallbacks(runnable);
https://stackoverflow.com/questions/4817933
复制相似问题