安卓闹钟管理器

4

您好,我一直在研究Android中的闹钟管理器,并想知道如何设置特定时间的闹钟(或可以使用通知管理器)例如明天下午12点。以下代码将闹钟设置为从现在起5秒后触发,因此要将其设置为类似于12 pm这样的时间,您可以做类似于12:00:00的事情吗?

 Intent intent = new Intent(this, OnetimeAlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, 0);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (5 * 1000), sender);
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
2个回答

12

Java的日期和时间库非常麻烦,但是这应该可以给你一个想法:

// the time now
Calendar calendar = Calendar.newInstance();

// noon tomorrow
calendar.add(Calendar.DAY_OF_YEAR, 1);
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);

alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
    Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();

没问题。不要忘记你可以点赞和接受回答 :) 这会让人们更有动力回答你的问题。 - emmby
同样的问题,Mike,但我想在纽约时间下午12点设置闹钟,无论我的用户在哪个国家!我需要处理时区,是吗?你会怎么做?所以我希望全球所有用户(如果他们选择加入)在完全相同的时间收到闹钟... - Hubert
嗨,胡伯特。请查看Calendar(TimeZone,Locale)构造函数。http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html#Calendar(java.util.TimeZone,%20java.util.Locale) - emmby
没问题,使用以下代码即可:TimeZone tz = TimeZone.getTimeZone("America/New_York"); Calendar calNewYork = new GregorianCalendar(tz); - Hubert

0
Calendar calendar = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());

这应该可以工作


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接