2011-05-20 66 views
0

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

我可以使用处理程序是这样的:

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 或在某一时间间隔检查当前时间和调用功能,在时机成熟时。

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

在此先感谢。

回答

1

为什么你不使用处理程序本身?只需通过timePickerTime - currentTime作为延迟。
还有Timer与方法schedule(TimerTask task, Date when)

+0

我不知道是否有比这另一种方法.. – ofirbt 2011-05-20 16:10:43

+0

尽管我已经在问题本身中提出了这个解决方案, D试图避免这种方式,我最终实现了这种方式。 – ofirbt 2011-05-20 21:36:45

2

您可以使用AlarmManager服务:

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

一个简表样本:上的PendingIntent

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); 

更多的相关信息http://developer.android.com/reference/android/app/PendingIntent.html

+0

+1用于向我介绍PendingIntent和AlarmManager。 TNX! – ofirbt 2011-05-20 21:37:23

相关问题