如何修复 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