Android日历Intent事件始终在启动后一小时结束,API级别为8+

时间:2014-03-06 06:29:31

标签: java android android-intent calendar

我知道之前使用过相同的标题,但具体问题(和答案)与ContentValues类一起使用,即Api等级14+;我的程序使用最低Api等级8.我使用Intent with putextra将我的值添加到日历中:

            Calendar beginTime = Calendar.getInstance();
            beginTime.set(year, month, day, fromHour, fromMin, 0);
            Calendar endTime = Calendar.getInstance();
            endTime.set(year, month, day, toHour, toMin, 0);

            long startMillis = beginTime.getTimeInMillis();
            long endMillis = endTime.getTimeInMillis();
            Intent intent = new Intent(Intent.ACTION_EDIT);
            intent.setType("vnd.android.cursor.item/event");
            intent.putExtra("beginTime", startMillis);
            intent.putExtra("allDay", false);
            intent.putExtra("endTime", endMillis);
            intent.putExtra("title", strSelected);
            intent.putExtra("description", strSelected+" for "+minDiff+
                    " minutes burning "+calorieBurned+" calories");
            intent.putExtra("eventLocation", "Gym");
            startActivity(intent);

年,月,日,fromHour,fromMin等是上述代码中定义的变量。除了结束时间之外,日历适用于所有这些值,无论开始时间是什么,它都在开始时间后一小时。当我将startMillis与endMillis进行比较时,两者都是正确的(因此endMillis距离startMillis超过1小时),因此正确的结束日期将传递给日历,但日历似乎没有正确调整。

如果我删除了intent.putExtra(“endTime”,endMillis); 完全代码,开始日期保持正确,但结束日期恢复为默认值(1970年代)。因此,日历正在识别代码行,但只是没有使用正确的endMillis值,或者仅停留在显示开始日期之后的小时。

即使我在开始时间后不到一小时输入结束时间,日历仍会在开始日期后一小时显示。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

这似乎只是旧Android手机中的一个错误;我买了一部新的Android手机,无需更改代码即可完美运行。

我认为除了更新Android操作系统之外,还有一个问题的解决方案,因为这是一个不可避免的错误。