我想将事件添加到日历中。该活动必须显示特定时间段。 使用代码获取开始时间和结束时间:
java.sql.Timestamp tsStart = java.sql.Timestamp.valueOf(2014 + "-" + 10
+ "-" + 25 + " " + 10 + ":" + 25 + ":00");
java.sql.Timestamp tsEnd = java.sql.Timestamp.valueOf(2014 + "-" + 12
+ "-" + 25 + " " + 11 + ":" + 25 + ":00");
mStartTime = tsStart.getTime();
mEndTime = tsEnd.getTime();
这里的开始时间是25,OCt 2014 结束时间是2014年12月25日。
ContentValues event = new ContentValues();
event.put("calendar_id", 1);
event.put("eventTimezone", TimeZone.getDefault().getID());
event.put("title", "test");
event.put("description","description");
event.put("dtstart", mStartTime);
event.put("dtend", mEndTime);
event.put("rrule", "FREQ=MONTHLY");
event.put("allDay", 1);
event.put("eventStatus", 1);
event.put("hasAlarm", 1);
Uri url = getContentResolver().insert(mEventsUri, event);
这是我用于添加到日历的代码。但事件未在日历中正确更新。即,事件将显示在结束日期之后。我该如何解决这个问题? 请帮帮我......
答案 0 :(得分:1)
您可以使用Calender Instance而不是创建java.sql对象。
我尝试了以下操作来设置未来的时间并让它一直运行到指定的日期。
Calendar currentDate = Calendar.getInstance();
currentDate读取当前设备时间。
final Calendar future = Calendar.getInstance();
// Month 0-January, 11-December
future.set(2014, 9, 25, 23, 59, 59);
创建一个处理程序以检查将来的日期实例。
// runs every second
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
handler.postDelayed(this, 1000); // set time in milliseconds
if (future.before(currentDate)) {
close_app();
}
}
}, 1000);
future.before(currentDate)
检查将来的时间。