我想在用户指定的时间启动我的AlarmManager活动但是时间字符串以标准格式存储(例如7:30)我如何使用AlarmManager与存储的长值进行交互标准格式 - 而不是通常的毫秒?是否可以在不将其转换为毫秒的情况下执行此操作?如果是这样 - 怎么样?如果不是 - 第二个最佳选择是什么? (如果我的时间字符串是标准格式,我只需要知道唤醒警报的最简单方法。)
来源:
String time = 7:30
Intent intent2 = new Intent(New.this, Start.class);
PendingIntent pintent2 = PendingIntent.getActivity(Rules.this, 0, intent2,
0);
AlarmManager alarm2 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm2.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
time != null ? 1000 : 0, pintent2);
编辑:
我试图使用我发现的以下方法:
public Date getTimeFromTimeString(String time)
{
String[] splitStrings = time.split(":");
Date timeDate = new Date();
timeDate.setHours(Integer.parseInt(splitStrings[0]));
timeDate.setMinutes(Integer.parseInt(splitStrings[1]));
return timeDate;
}
但是我收到警告说:
The method setMinutes(int) from the type Date is deprecated
The method setSeconds(int) from the type Date is deprecated
答案 0 :(得分:1)
使用SimpleDateFormat
将String
解析为Calendar
。从那里拉出毫秒。
答案 1 :(得分:0)
此链接中包含日历的源代码https://code.google.com/p/ancal/source/checkout 它包含带约会,任务和警报的日历。我不知道它是否会对你有所帮助。但是如果你检查代码,你可以找到你想要做的事情。 (您必须创建SVN才能下载此项目)