如何在特定时间调用方法?

时间:2018-06-19 10:20:38

标签: android

我有以下代码:

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

    Calendar c = Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, hourOfDay);
    c.set(Calendar.MINUTE, minute);
    c.set(Calendar.SECOND, 0);
}

如何使用它来执行方法" onLed();"

谢谢。

2 个答案:

答案 0 :(得分:0)

you can use this code:
private static class MyTimeTask extends TimerTask
{

    public void run()
    {
        //write your code here
    }
}

public static void main(String[] args) {

    //the Date and time at which you want to execute
    DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = dateFormatter .parse("2012-07-06 13:05:45");

    //Now create the time and schedule it
    Timer timer = new Timer();

    //Use this if you want to execute it once
    timer.schedule(new MyTimeTask(), date);

    //Use this if you want to execute it repeatedly
    //int period = 10000;//10secs
    //timer.schedule(new MyTimeTask(), date, period );
}

答案 1 :(得分:0)

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

    Calendar c = Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, hourOfDay);
    c.set(Calendar.MINUTE, minute);
    c.set(Calendar.SECOND, 0);
    long timeToWait = System.currentTimeMillis() - c.getTimeInMillis();
    if(timeToWait > 0) {
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                onLed(); //This function will execute after spending your time
            }
        }, timeToWait);
    }
}