mercredi 6 mai 2015

Notification nicht mehr senden nachdem sie geklickt wurde

Ich schreibe gerade eine Android App für die Schule.
Darin wird alle 15 Minuten abgefragt ob einer meiner Kontakte Geburtstag hat und wenn ja gibt es eine Notifikation. So weit funktioniert das schon mal. Nun möchte ich aber, wenn die Notification einmal angeklickt wurde, dass sie nicht mehr gesendet wird. Also auch nicht in 15 Minuten, wenn das nächste Mal die Überprüfung ausgeführt wird. Kann mir da jemand helfen?

Java Code:

  1.  
  2. public class BirthdayNotifyService extends Service {
  3.  
  4. final static String STOP_SERVICE_BROADCAST_KEY="StopServiceBroadcastKey";
  5. final static int RQS_STOP_SERVICE = 1;
  6. NotifyServiceReceiver notifyServiceReceiver;
  7. ArrayList<MyContact> birthdayList;
  8. private Date geburtstagNeu;
  9. String notificationText = "Jemand hat Geburtstag!";
  10.  
  11. @Override
  12. public void onCreate() {
  13. notifyServiceReceiver = new NotifyServiceReceiver();
  14. super.onCreate();
  15. }
  16.  
  17. @Override
  18. public int onStartCommand(Intent intent, int flags, int startId) {
  19. birthdayList = new BirthdayDataFactory().getContacts(this);
  20. int mNotificationId = 001;
  21. Long l = null;
  22.  
  23. for (int i = 0; i < birthdayList.size(); i++) {
  24. geburtstagNeu = birthdayList.get(i).getDate();
  25. if(geburtstagNeu != null) {
  26. if(birthdayList.get(i).hasBirthday()) {
  27. notificationText = birthdayList.get(i).getName();
  28. l = birthdayList.get(i).getID();
  29. mNotificationId = Integer.valueOf(l.intValue());
  30.  
  31. NotificationCompat.Builder mBuilder =
  32. new NotificationCompat.Builder(this)
  33. .setSmallIcon(R.drawable.ic_launcher)
  34. .setContentTitle("Happy Birthday")
  35. .setContentText(notificationText);
  36.  
  37. // Creates an explicit intent for an Activity in your app
  38. Intent resultIntent = new Intent(this, MainActivity.class);
  39.  
  40. PendingIntent resultPendingIntent =
  41. PendingIntent.getActivity(
  42. this,
  43. 0,
  44. resultIntent,
  45. PendingIntent.FLAG_UPDATE_CURRENT
  46. );
  47.  
  48. mBuilder.setContentIntent(resultPendingIntent);
  49.  
  50. NotificationManager mNotifyMgr =
  51. (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  52.  
  53. // benachrichtigung wird ausgegeben
  54. mNotifyMgr.notify(mNotificationId, mBuilder.build());
  55. }
  56. }
  57. }
  58. return super.onStartCommand(intent, flags, startId);
  59. }
  60.  
  61. @Override
  62. public void onDestroy() {
  63. this.unregisterReceiver(notifyServiceReceiver);
  64. super.onDestroy();
  65. }
  66.  
  67. @Override
  68. public IBinder onBind(Intent arg0) {
  69. return null;
  70. }
  71.  
  72. public class NotifyServiceReceiver extends BroadcastReceiver {
  73. @Override
  74. public void onReceive(Context arg0, Intent arg1) {
  75. int rqs = arg1.getIntExtra(STOP_SERVICE_BROADCAST_KEY, 0);
  76. if (rqs == RQS_STOP_SERVICE){
  77. stopSelf();
  78. ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
  79. .cancelAll();
  80. }
  81. }
  82. }
  83. }


Notification nicht mehr senden nachdem sie geklickt wurde

0 commentaires:

Enregistrer un commentaire