-1

Je fais une application dans Android qui devrait fonctionner comme une simple application de rappel de tâches.
Mon problème est que je veux que l'application envoie une notification à l'utilisateur si un avant choosentime est en place. Je travaille avec le BroadcastReceiver et le AlarmManager pour programmer l'alarme. Je sais que je dois définir la notification/et alarm_id unique mais je ne sais pas comment envoyer plusieurs notifications avec un titre et un texte spécifiques. Le titre doit donc être le nom de la tâche enregistrée dans une base de données SQL. J'ai essayé de configurer les variables comme statiques mais cela ne m'aide pas car cela va changer toutes les notifications pour le même texte. C'est mon récepteur de radiodiffusion ->Android envoyer des notifications à temps avec un texte unique

public class AlertReceiver extends BroadcastReceiver 
{ 

private Context context; 



@Override 
public void onReceive(Context context, Intent intent) 
{ 
    this.context = context; 
    String title = intent.getStringExtra("Title"); 
    createNotification("Title", "Message", "Time is up"); 

    Log.d("AlertReceiver", "Extra: " + title); 
} 







private void createNotification(String title, String message, String ticker) 
{ 
    PendingIntent notificationIntent = PendingIntent.getActivity(context, 0, new Intent(context, NavigationActivity.class), 0); 

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context); 

    mBuilder.setContentIntent(notificationIntent); 
    mBuilder.setSmallIcon(R.drawable.ic_access_alarms_white_24dp); 
    mBuilder.setContentTitle(title); 
    mBuilder.setContentText(message); 
    mBuilder.setTicker(ticker); 

    mBuilder.setAutoCancel(true); 
    mBuilder.setDefaults(android.support.v7.app.NotificationCompat.DEFAULT_ALL); 

    NotificationManager manager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 
    manager.notify((int)System.currentTimeMillis(), mBuilder.build()); 


} 
} 

quelqu'un Hope peut me aider. Merci d'avance

Répondre

0

En fait, j'ai trouvé une réponse. C'est aussi une réponse aux personnes qui ont demandé comment accéder aux variables chez un grand receveur. Lorsque vous créez l'alarme que vous devez mettre en place une intention qui sera lancé si l'alarme se déclenche

Intent alertIntent = new Intent(this, receiver.getClass()); 
     alertIntent.putExtra("Notification_ID", taskID); 
     Log.d("AlertIntent", "ID" + String.valueOf(alertIntent.getIntExtra("Notification_ID", 0))); 

     AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
     alarmManager.set(AlarmManager.RTC_WAKEUP, alertTime, PendingIntent.getBroadcast(this, alertIntent.getIntExtra("Notification_ID", 0), alertIntent, PendingIntent.FLAG_UPDATE_CURRENT)); 

Ici vous pouvez définir un supplément à votre intention qui sera toujours unique, car vous aurez toujours créer une nouvelle un. Dans votre classe BroadcastReceiver vous pouvez alors obtenir le plus avec

int taskID = alarmIntent.getIntExtra("Notification_ID", 1); 

espoir cette réponse est utile à quelqu'un.