Android ScheduledExecutor服务计划问题
我有一个发送延迟文本的应用程序。我称之为:Android ScheduledExecutor服务计划问题,android,Android,我有一个发送延迟文本的应用程序。我称之为: Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC")); long delay = cal.getTimeInMillis(); smsControl.sendSMSLater(phoneNumber, msg, (date - delay)); 其余的是: class smsControl { static ScheduledExecutorService schedule
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
long delay = cal.getTimeInMillis();
smsControl.sendSMSLater(phoneNumber, msg, (date - delay));
其余的是:
class smsControl {
static ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
public static void sendSMSLater(final String phoneNumber, final String msg, long date) {
ScheduledFuture scheduledFuture = scheduledExecutorService.schedule(new Callable() {
public Object call() throws Exception {
SmsManager smsManager = SmsManager.getDefault();
String smsNumber = phoneNumber;
String smsText = msg;
smsManager.sendTextMessage(smsNumber, null, smsText, null, null);
return "Sent!";
}
}, date, TimeUnit.MILLISECONDS);
}
}
问题是它没有等待延迟的时间日期。它很快就发送了。
任何见解都有帮助!谢谢 如何在
smsControl.sendSMSLater(phoneNumber,msg,(date-delay))中计算日期代码>日期是用户通过DatePicker输入的存储时间,然后我将其转换为长时间。延迟应为当前时间code
cal=Calendar.getInstance(TimeZone.getTimeZone(“UTC”);校准集(日历年,mYear);校准设置(日历、月份、月);校准设置(日历日/月/日,mDay);cal.set(Calendar.HOUR\u OF_DAY,tpResult.getCurrentHour());cal.set(Calendar.MINUTE,tpResult.getCurrentMinute());校准设置(日历秒,0);editdate=cal.getTimeInMillis()code
尝试记录(日期延迟)
的值,以查看该计算结果。嗯,我认为问题在于,我的日期似乎晚了7小时,因此我得到了负偏移量。是时候看看为什么我会有时差了,尽管它们都初始化为UTC。谢谢你的帮助!