Java AlarmManager不会使用自定义日历对象触发

Java AlarmManager不会使用自定义日历对象触发,java,android,Java,Android,我试图使用自定义时间设置警报,但我所做的一切都不起作用。启动AlarmManager的唯一方法是使用Calendar.getInstance().getTimeInMillis()。 为了获取我的时间,我从SQLite数据库中检索了它们。我仔细检查了一下,没有一个值是空的 for (QueuePostFb q : queueFb) { String day = q.getDay(); String month = q.getMonth();

我试图使用自定义时间设置警报,但我所做的一切都不起作用。启动AlarmManager的唯一方法是使用
Calendar.getInstance().getTimeInMillis()。

为了获取我的时间,我从SQLite数据库中检索了它们。我仔细检查了一下,没有一个值是空的

    for (QueuePostFb q : queueFb)
    { 
        String day = q.getDay(); 
        String month = q.getMonth(); 
        String year = q.getYear(); 
        String hour = q.getHour(); 
        String minute = q.getMinute(); 
        String amPm = q.getAmPm(); 
        String message = q.getMessage(); 
        String token = q.getTokens(); 
        String photoUri = q.getAttachmentUris(); 

        int m = Integer.parseInt(month); 
        int d = Integer.parseInt(day); 
        int y = Integer.parseInt(year); 
        int mi = Integer.parseInt(minute);
        int h = Integer.parseInt(hour); 

        Calendar c = Calendar.getInstance();

        if (amPm.equals("AM")){ 
            c.set(Calendar.AM_PM, Calendar.AM);
        }
        else if (amPm.equals("PM")){
            c.set(Calendar.AM_PM, Calendar.PM);             
        }

        AlarmManager fAm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 

        c.set(Calendar.DAY_OF_MONTH, d);
        c.set(Calendar.YEAR, y);
        c.set(Calendar.MINUTE, mi);
        c.set(Calendar.MONTH, m);
        c.set(Calendar.HOUR, h);

        Intent fService = new Intent(this, QueuedService.class); 

        fService.putExtra("fb_token", token);
        fService.putExtra("fb_photo_uri", photoUri); 
        fService.putExtra("fb_message", message); 
        fService.putExtra("type", "Facebook");

        PendingIntent fPi = PendingIntent.getService(getApplicationContext(), 0, fService, PendingIntent.FLAG_UPDATE_CURRENT);

        // Will work if Calendar.getInstance().getTime().getTimeInMillis()
        fAm.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), fPi);
    }

调用Calendar对象上的setter方法后,打印日期,如System.out.println(c.getTime());并确保打印的日期和时间正确。