AlarmManager ne fonctionne pas

J'ai besoin de démarrer l'activité AlarmReceiver après 10 secondes (par exemple). J'ai besoin d'être activé sans exécuter l'application. Mais si l'application fonctionne ou non, le AlarmReceiver n'est pas appelé. Aucune suggestion?

 Intent intent = new Intent(this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 111, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); //alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() //+ (10 * 1000), pendingIntent); Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show(); 

  • Android comment un EditText fonctionne comme AutoComplete
  • Major.minor version 52.0 non prise en charge dans mon application
  • Différentes tailles de police pour différentes tailles d'écran
  • Comment animer un chemin sur une toile - Android
  • Utilisation de l'injection de dépendance avec Roboguice?
  • Comment envoyer une requête POST dans JSON en utilisant HTTPClient dans Android?
  • 4 Solutions collect form web for “AlarmManager ne fonctionne pas”

     public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String message = "Hellooo, alrm worked ----"; Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); Intent intent2 = new Intent(context, TripNotification.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } public void setAlarm(Context context){ Log.d("Carbon","Alrm SET !!"); // get a Calendar object with current time Calendar cal = Calendar.getInstance(); // add 30 seconds to the calendar object cal.add(Calendar.SECOND, 30); Intent intent = new Intent(context, AlarmReceiver.class); PendingIntent sender = PendingIntent.getBroadcast(context, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT); // Get the AlarmManager service AlarmManager am = (AlarmManager) context.getSystemService(context.ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); } } 

    C'est le code final que j'ai réussi à travailler. Vous devez ajouter

      <receiver android:process=":remote" android:name="AlarmReceiver"></receiver> 

    Juste au-dessus de la </application> dans le fichier Manifest.

    Cela déclenchera une alarme pour déclencher en 30 secondes après avoir appelé la méthode SetAlarm()

    À partir de maintenant, il n'est pas possible de démarrer l'alarme sans exécuter l'application, vous devez d'abord exécuter votre application respective pour activer votre alarme … Pour cela …. !!

    Dans votre ALARM_ACTIVITÉ:

     AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(ALARM_ACTIVITY.this,ALARM_RECEIVER.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(SetReminder.this, ID, intent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeInMillis() + 1000, pendingIntent); 

    Dans votre ALARM_RECEIVER :

     NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); notification = new Notification(R.drawable.alarmicon, "charSequence", System.currentTimeMillis()); notification.setLatestEventInfo(context, "alarmTitle", "charSequence", pendingIntent); notification.flags |= Notification.FLAG_AUTO_CANCEL; notificationManager.notify(1, notification); 

    Et s'il ne fonctionne toujours pas se débarrasser de la partie android:process=":remote" peut vous aider. A travaillé pour moi 🙂

    De plus, en plus de ce qui précède, je pense que les méthodes de AlarmActivity devraient être dans la méthode oncreate de l'activité LAUNCHER. Dans ce cas, la Activité d'alarme devrait être l'activité LAUNCHER de l'application. Cela a résolu mon problème

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.