Java Android日历意图事件总是在开始后一小时结束,API级别为8+;

Java Android日历意图事件总是在开始后一小时结束,API级别为8+;,java,android,android-intent,calendar,Java,Android,Android Intent,Calendar,我知道这个标题以前也用过,但具体的问题(和答案)用于ContentValues类,即Api级别14+;我的程序至少使用8级Api。我使用Intent和putextra将我的值添加到日历中: Calendar beginTime = Calendar.getInstance(); beginTime.set(year, month, day, fromHour, fromMin, 0); Calendar endTime =

我知道这个标题以前也用过,但具体的问题(和答案)用于ContentValues类,即Api级别14+;我的程序至少使用8级Api。我使用Intent和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值,或者只能显示开始日期后的小时

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


任何帮助都将不胜感激。谢谢。

这似乎只是旧版安卓手机的一个bug;我买了一部新的安卓手机,它在不改变代码的情况下工作得很好


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

那么,这个问题是否发生在运行API 8的设备上?(2.2)或者它发生在运行更高版本Android的设备上。如果您更改此
intent.putExtra(“全天”,false),会发生什么情况
intent.putExtra(“全天”,真)?NanaGeek-我的设备是API 10,但我的MinSDK版本是8。Artoo Detoo-如果我将“allDay”更改为true,则From和to设置为全天,并且选中了“All day”单选项。