使用标准格式的时间值启动AlarmManager的最简单方法(ex 7:30)

时间:2013-04-23 00:13:29

标签: java android time alarmmanager

我想在用户指定的时间启动我的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

2 个答案:

答案 0 :(得分:1)

使用SimpleDateFormatString解析为Calendar。从那里拉出毫秒。

答案 1 :(得分:0)

此链接中包含日历的源代码https://code.google.com/p/ancal/source/checkout 它包含带约会,任务和警报的日历。我不知道它是否会对你有所帮助。但是如果你检查代码,你可以找到你想要做的事情。 (您必须创建SVN才能下载此项目)