处理android中的重复计划任务

时间:2014-03-28 12:48:00

标签: android handler runnable

我目前有一个每30秒运行一次的重复计划任务。有一个按钮可以停止,恢复和启动任务。问题是使用timer.cancel()timer.purge()仍未处理启动/暂停功能

gpsTimer.scheduleAtFixedRate(new TimerTask() {
                            @Override
                            public void run() {
                                distanceCount = (member.stepLength / 100000) * stepCount; // cm to km
                                caloriesCount = 0.47 * member.weight * 2.20462262 * distanceCount;

                                getActivity().runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        Log.d("test1","t");
                                        distance.setText(String.format("%.2f", distanceCount));
                                        calories.setText(String.format("%.2f", caloriesCount));
                                    }
                                });
                            }
                        }, 0, 10000);


gpsTimer.purge();

当我按开始时它运行scheduleAtFixed Rate,当我按停止/暂停时,它会运行清除,但是,任务没有停止,我尝试gpsTimer.cancel(),但是当我再次运行时它会抛出异常。谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

这可以帮到你:

取消TimerTask后,同样无法再次启动..
如果您想再次重复使用同一个对象,则必须创建new instance ...

或者您可以使用ScheduledExecutorService(来自Java 5 +)。