【问题标题】:Android Alarm Manager Start timeAndroid 闹钟管理器开始时间
【发布时间】:2017-07-05 10:08:36
【问题描述】:

我有这段代码,但闹钟不会从一开始就开始。我希望myReceiver 从分钟开始,并从时间开始重复。我怎样才能做到这一点?

PendingIntent pendingIntent3;
AlarmManager manager =(AlarmManager) getSystemService(Context.ALARM_SERVICE);


Intent alarmIntent3 = new Intent(getBaseContext(), myReceiver.class);
pendingIntent3 = PendingIntent.getBroadcast(getBaseContext(), 0, alarmIntent3, 0);


manager.setRepeating(AlarmManager.ELAPSED_REALTIME  _WAKEUP,
                SystemClock.currentThreadTimeMillis(),
                1*60*1000, pendingIntent3);

【问题讨论】:

    标签: android alarmmanager android-pendingintent android-alarms


    【解决方案1】:

    使用以下代码设置重复报警:

    Intent alarmIntent3 = new Intent(getBaseContext(), myReceiver.class);
    PendingIntent pendingIntent3 = PendingIntent.getBroadcast(getBaseContext(), 0, alarmIntent3, PendingIntent.FLAG_UPDATE_CURRENT);
    
    // Current time
    Calendar calendarNotifiedTime = Calendar.getInstance();
    calendarNotifiedTime.setTimeInMillis(System.currentTimeMillis());
    calendarNotifiedTime.set(Calendar.SECOND, 0);
    
    // Set alarm
    AlarmManager manager =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
    manager.setRepeating(AlarmManager.RTC_WAKEUP, calendarNotifiedTime.getTimeInMillis(), 1*60*1000, pendingIntent3);
    

    确保您在AndroidManifest.xml 中声明了myReceiver BroadcastReceiver。

    【讨论】:

    • 谢谢,但它在开始时不起作用。如果我在中间开始接收器,它会在下一分钟中间重复。我该怎么办?
    • 只需添加calendarNotifiedTime.set(Calendar.SECOND, 0); 并重试。检查我更新的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多