Android闹钟没有触发

时间:2012-05-03 19:31:28

标签: android alarmmanager android-alarms

我在测试项目中有这个工作,但当我尝试在我正在进行的实际项目中实现它时,它根本不起作用。

我正在尝试设置闹钟,但它无法正常工作。我真的不知道什么是错的,对这个问题的描述无济于事。我已经检查了我可能遇到的每个常见问题,但仍然......

以下是一些代码:

SilenciadorReceiver :(这是一个广播接收器)

@Override
public void onReceive(Context context, Intent intent) {
    blablabla code blablabla (breakpoint in the first valid line of code)
    Show a toast at the end (not working)
}

public static activateAlarm(Context context, long alarmTime, int action) {
    AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, SilenciadorReceiver.class);
    intent.putExtra("action", action);
    PendingIntent pending = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    alarms.set(AlarmManager.RTC_WAKEUP, alarmTime, pending);
}

// The horario variable here has the format "16:00", it represents the hour and minute in 24H format
private static long getTimeMillis(String horario) {
    Calendar updateTime = Calendar.getInstance();
    int hora = Integer.parseInt(horario.split(":")[0]);
    int minuto = Integer.parseInt(horario.split(":")[1]);
    updateTime.set(Calendar.HOUR_OF_DAY, hora);
    updateTime.set(Calendar.MINUTE, minuto);
    updateTime.set(Calendar.SECOND, 0);
    return updateTime.getTimeInMillis();
}

清单:(我也有启动完成权限)

<receiver
    android:name=".activities.SilenciadorReceiver"
    android:label="@string/app_name"
    android:process=":remote" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

我正在调试它并手动设置变量alarmTime,使用Epoch Converter解析时间(我在几毫秒内将时间传递给Java,而不是几秒钟)。在我开始手动设置此变量之前,我尝试使用System.currentTimeMillis()和上面描述的getTimeMillis()函数,但它也无法正常工作

基本上,警报已设置,至少它看起来已设置好,但它从未被调用过。

0 个答案:

没有答案