android - 在特定时间设置安卓闹钟

标签 android date alarmmanager

我在特定时间设置了闹钟,但每次我打开应用程序时它都会打开 这是我使用的代码:

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,0010000,intent,0);

Calendar time = Calendar.getInstance();
time.set(Calendar.HOUR, 5);
time.set(Calendar.MINUTE, 59);
time.set(Calendar.SECOND, 0);

alarmManager.set(AlarmManager.RTC,time.getTimeInMillis(),pendingIntent);

最佳答案

好的,您需要将闹钟设置为下次 5:59:00 响铃。 您可以通过获取当前时间来执行此操作,如果它在 5:59:00 之前,则设置闹钟,如果它在 5:59:00 之后,则添加一天并设置闹钟。这样做:

import java.util.Calendar;
import java.util.Date;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(new Panel(this));

    Date dat  = new Date();//initializes to now
    Calendar cal_alarm = Calendar.getInstance();
    Calendar cal_now = Calendar.getInstance();
    cal_now.setTime(dat);
    cal_alarm.setTime(dat);
    cal_alarm.set(Calendar.HOUR_OF_DAY,5);//set the alarm time
    cal_alarm.set(Calendar.MINUTE, 59);
    cal_alarm.set(Calendar.SECOND,0);
    if(cal_alarm.before(cal_now)){//if its in the past increment
        cal_alarm.add(Calendar.DATE,1);
    }
    //SET YOUR AlarmManager here

}

我想给你一个可构建的例子,但我还没有完全理解 alarmmanager,所以这就是你所拥有的。构建于带有 ADK 15 的 eclipse 3.5.2

关于android - 在特定时间设置安卓闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139936/

相关文章:

MySQL 触发器开始日期早于结束日期

android - 显示 "left time"直到闹钟开始

java - 在特定时间使用警报管理器

android - 我们应该为 Android L Material 主题设计吗?

android - 如何正确停止前台服务?

java - 读取 Cipher 生成的文件时的 StreamCorruptedExecution

android - 非法状态异常 : Content has been consumed

r - as.Date 从 'YYYY.mm' 格式

php - 在 php 中将 dd-mm-yyyy 转换为 yyyy-mm-dd

java - Alarmmanager 无法处理大秒数