Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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 使用Alarm Manager在特定时间设置通知,但我的receiver类未按时调用_Android_Notifications_Alarmmanager - Fatal编程技术网

Android 使用Alarm Manager在特定时间设置通知,但我的receiver类未按时调用

Android 使用Alarm Manager在特定时间设置通知,但我的receiver类未按时调用,android,notifications,alarmmanager,Android,Notifications,Alarmmanager,还有我最重要的文件 Long time = prefs.getLong("dailynoti", 0); Intent intent = new Intent(cn, NotificationReceiver.class); intent.putExtra("Desc", "Description..."); PendingIntent pendingIntent = PendingIntent.getBroadcast(cn,

还有我最重要的文件

        Long time = prefs.getLong("dailynoti", 0);  
        Intent intent = new Intent(cn, NotificationReceiver.class);
        intent.putExtra("Desc", "Description...");
        PendingIntent pendingIntent = PendingIntent.getBroadcast(cn, 1055, intent,0);
        AlarmManager alarmManager = (AlarmManager) cn.getSystemService(cn.ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,time, AlarmManager.INTERVAL_DAY, pendingIntent);

我认为一种可行的方法是使用
alarmManager.setRepeating()
代替
alarmManager.set()
,并在警报触发时设置下一个警报。这将为您提供几乎准确的结果。为什么差不多?因为Android M中引入了延迟。所以这会给你0到+5分钟的延迟。

为什么要否决这个问题。?我尝试了很多事情,但没有找到解决方案,所以我贴了一个问题。如果我错了,那么在评论中说出这一点,这样我就可以改变它。
    <receiver
        android:name="com.mypackage.NotificationReceiver"
        android:enabled="true"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.REBOOT" />
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.QUICKBOOT_POWERON" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
PendingIntent pendingIntent = PendingIntent.getBroadcast(cn, 1055, intent, PendingIntent.FLAG_CANCEL_CURRENT
//FLAG_NO_CREATE
//FLAG_UPDATE_CURRENT