我正在使用计时器来安排通知
GregorianCalendar date = new GregorianCalendar(2011, 2, 6, 16, 50);
long task = date.getTimeInMillis() - System.currentTimeMillis();
Timer timer = new Timer();
TimerTask timerTask = new TimerTask()
{
@Override
public void run()
{
triggerNotification();
}
};
timer.schedule(timerTask, task);
如果我在计划方法中手动输入长值,计时器将起作用,但如果我使用任务变量,则看起来没有任何效果。基本上我想在Gregorian Calendar对象中的所述日期和时间安排通知。我做错了什么?
答案 0 :(得分:2)
通过使用此代替日历来实现此目的:
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm");
Date date = formatter.parse("02/06/2011 16:28");
timer.schedule(timerTask, date);
答案 1 :(得分:0)
如果你安排的任务还有一段时间,那么AlarmManager
课程可能也值得关注:http://developer.android.com/reference/android/app/AlarmManager.html
答案 2 :(得分:0)
您可以执行以下操作:
private void createStatusBarNotification(final String contentTitle, final String contentText, final String tickerText, final long millisec)
{
//Date date = new Date(System.currentTimeMillis() + (1000 * 60 * 2));//in next 2 minutes
long f = System.currentTimeMillis() + (1000 * 60 * 2);
//super.webView.loadUrl("javascript: alert('::"+millisec+","+f+"')");
Date date = new Date(millisec);
Timer timer = new Timer();
TimerTask timerTask = new TimerTask()
{
@Override
public void run()
{
createNotification( contentTitle, contentText, tickerText, millisec);
}
};
timer.schedule(timerTask, date);
}