如何修复 Timertask 仅 运行 一次?
how to fix Timertask is running only once?
我正在尝试每 1 秒获取一次当前位置。 getlocationCoordinate 方法允许 return 我当前的纬度和经度。
所以我实现了一个定时器任务,它应该 运行 每 1 秒和 return 我当前的位置,但是定时器任务只有 运行ning 一次,我该如何解决这个问题有问题吗?
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
我正在尝试每 1 秒获取一次当前位置。 getlocationCoordinate 方法允许 return 我当前的纬度和经度。
所以我实现了一个定时器任务,它应该 运行 每 1 秒和 return 我当前的位置,但是定时器任务只有 运行ning 一次,我该如何解决这个问题有问题吗?
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