J'ai utilisé un gestionnaire d'alarmes pour envoyer une notification quotidienne. Depuis alarmManager s'arrête après le redémarrage du téléphone, j'ai donc créé un BroadcastReceiver à déclencher sur BOOT_COMPLETE, toujours pas de succès. Même pas de pain grillé.AlarmManager n'est pas déclenché après le démarrage complet
classe BroadcastRreceiver
package com.aman.dailynoti;
import...
public class BReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ((intent.getAction()).equals("android.intent.action.BOOT_COMPLETED")) {
Toast.makeText(context, "broadcast", Toast.LENGTH_SHORT).show();
SharedPreferences mpreferences=context.getSharedPreferences("myPreferences",MODE_PRIVATE);
int h=mpreferences.getInt("hour",14);
int m=mpreferences.getInt("minute", 30);
Calendar calendar= Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,h);
calendar.set(Calendar.MINUTE,m);
calendar.set(Calendar.SECOND,00);
Intent notiIntent = new Intent(context, Notification_Receiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 1, notiIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
}
}
}
AndroidManifest.xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application...>
<receiver
android:name="com.aman.dailynoti.BReceiver"
android:enabled="true"
android:label="breceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
Vérifiez ce que vous avez ** ** l'autorisation est ther ou non. –
Oui, je l'ai dans le manifeste. – aman
Possibilité de duplication: https://stackoverflow.com/a/20441442/2557258 – Yazon2006