在某个小时执行功能

时间:2011-05-20 15:44:09

标签: android handler

我想在TimePicker选择的特定时间执行某些功能。

我可以像这样使用Handler:

Handler myHandler = new DoSomething();
Message m = new Message();
myHandler.sendMessageDelayed(m, delay);

class DoSomething extends Handler {
    @Override
    public void handleMessage(Message msg) {
      MyObject o = (MyObject) msg.obj;
      //do something here
    }
}

并加载“延迟”参数:picked_wanted_hour - current_hour 或者在某个时间间隔检查当前时间,并在时机到来时调用该功能。

但是,是否有任何类似处理程序的对象可以占用特定时间并在那时调用操作?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用AlarmManager服务:

http://developer.android.com/reference/android/app/AlarmManager.html

bref样本:

Intent intent = new Intent(this,<Activity.class/ or type of broadcast receiver>);
PendingIntent pi = PendingIntent.get(...)
AlarmManager am = getSystemService(Context.ALARM_SERVICE);
int delay = 1000; // 1 second
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + delay, pi);

PendingIntent上有更多信息 http://developer.android.com/reference/android/app/PendingIntent.html

答案 1 :(得分:1)

为什么不使用处理程序本身?只是暂时通过timePickerTime - currentTime  方法schedule(TimerTask task, Date when)还有Timer