Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的报警管理器_Android_Alarmmanager - Fatal编程技术网

android中的报警管理器

android中的报警管理器,android,alarmmanager,Android,Alarmmanager,我已经创建了简单的报警应用程序。它可以正常工作,但如果我手动更改设备的时间,那么我的闹钟就不工作了 这是我的代码: Calendar = Calendar.getInstance(); //c.add(Calendar.DAY_OF_WEEK,1); c.set(Calendar.HOUR_OF_DAY,15); c.set(Calendar.MINUTE, 00); c.set(Calendar.SECOND, 00); c.set(Calend

我已经创建了简单的报警应用程序。它可以正常工作,但如果我手动更改设备的时间,那么我的闹钟就不工作了

这是我的代码:

    Calendar = Calendar.getInstance();
    //c.add(Calendar.DAY_OF_WEEK,1);
    c.set(Calendar.HOUR_OF_DAY,15);
    c.set(Calendar.MINUTE, 00);
    c.set(Calendar.SECOND, 00);
    c.set(Calendar.MILLISECOND, 0);

    Intent intent = new Intent(HomeActivity.this, MyAlarmService.class);
    pendingIntent = PendingIntent.getService(HomeActivity.this, 0, intent, 0);
    alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, c.getTimeInMillis(), pendingIntent);

有什么建议吗?

[将评论中的答案添加到此处]

您需要添加一个接收器来再次设置警报。在日期和时区发生变化时,警报被重置,因此请使用此选项

<receiver android:name=".AlarmInitReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.TIME_SET" /> <action android:name="android.intent.action.TIMEZONE_CHANGED" /> 
</intent-filter> 
</receiver>


不工作意味着发生了什么事?Hi@PareshMayani:如果我将闹钟设置为下午5点,然后手动将设备时间设置为下午5点,则闹钟不工作。它不会工作,你需要添加一个接收器来再次设置警报。在日期和时区发生变化时,警报被重置,因此使用此设置时间在2-3分钟之前,并等待警报响起。我也有这个问题。Maneesh的这个问题和评论对我非常有用