如何在android中设置计时器?

时间:2013-02-14 02:11:52

标签: java android

timer.scheduleAtFixedRate(function_to_execute, 0, 5000);

我已阅读上面的示例,但我想在特定日期和时间启动该功能,例如2013/01/13,13:15 pm。

如何设置timer.scheduleAtFixedRate参数?

非常感谢你。

2 个答案:

答案 0 :(得分:1)

scheduleAtFixedRate方法已超载。

第一:

public void scheduleAtFixedRate(TimerTask task,
                                Date firstTime,
                                long period)

第二个(你的代码使用了这个):

public void scheduleAtFixedRate(TimerTask task,
                                long delay,
                                long period)

因此,要在特定时间运行,您可以使用pass Date对象作为第二个参数。

Date date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss a", Locale.ENGLISH).parse("2013/01/13 13:15 pm");
timer.scheduleAtFixedRate(function_to_execute, date, 5000);

更多:Timer.scheduleAtFixedRate

答案 1 :(得分:1)

您需要将DateTime转换为Long值,然后在延迟时间参数中使用此Long值。

以下是将日期转换为long值的示例,将datetime转换为Long值的方法与在delay time参数中使用此long值的方法相同。

String str_date="11-June-07";
  DateFormat formatter ; 
  Date date ; 
  formatter = new SimpleDateFormat("dd-MMM-yy");
  date = (Date)formatter.parse(str_date); 
  long longDate=date.getTime();
  System.out.println("Today is " +longDate );

感谢。