2017-08-08 2 views
0

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> 
+1

Vérifiez ce que vous avez ** ** l'autorisation est ther ou non. –

+0

Oui, je l'ai dans le manifeste. – aman

+0

Possibilité de duplication: https://stackoverflow.com/a/20441442/2557258 – Yazon2006

Répondre

0

Ne pas me citer sur cela, mais je crois que Android ne donne qu'une petite fenêtre de temps pour vos applications de faire ce qu'ils besoin de faire au démarrage. Si vous souhaitez que l'utilisateur reçoive des notifications lorsqu'il n'utilise pas l'application, consultez les notifications push.

0

vous devez également utiliser le filtre intention android.intent.action.QUICKBOOT_POWERON pour recevoir après le redémarrage

+0

pourquoi? Je n'ai jamais vu cette action avant –

+0

je l'ai utilisé avant et travailler avec moi lors du redémarrage –

+0

s'il vous plaît vérifier ce lien https://stackoverflow.com/questions/7978403/boot-receiver-not-working –