gpt4 book ai didi

java - 如何修复 Timertask 只运行一次?

转载 作者:行者123 更新时间:2023-11-29 23:06:42 25 4
gpt4 key购买 nike

我试图每 1 秒获取一次当前位置。 getlocationCoordinate 方法允许返回我当前的纬度和经度。

所以我实现了一个 timertask,它应该每 1 秒运行一次并返回我当前的位置,但是 timertask 只运行一次,我该如何解决这个问题?

    Timer timer= new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Looper.prepare();


System.out.println(" show me current location " + getlocationcoordinate(getApplicationContext()));
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "current location" +getlocationcoordinate(getApplicationContext()), Toast.LENGTH_SHORT).show();
}
});
Looper.loop();


}
},0,1000);

最佳答案

出于某种原因,计时器无法正常工作,您可以使用处理程序

 private Handler handler;
private Runnable runnable;


handler = new Handler();
handler.postDelayed(runnable, 1000);
runnable = new Runnable() {
@Override
public void run() {
try{
System.out.println(" show me current location " + getlocationcoordinate(getApplicationContext()));
}
catch(Exception e){
e.printStackTrace();
}
handler.postDelayed(this, 1000); //start again
}
};

来源here

关于java - 如何修复 Timertask 只运行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56429724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com