1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Erinnerung an Zeitpunkt in der Zukunft

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Makes, 26.04.2012.

  1. Makes, 26.04.2012 #1
    Makes

    Makes Threadstarter Junior Mitglied

    Beiträge:
    26
    Erhaltene Danke:
    0
    Registriert seit:
    26.04.2012
    Der Titel hört sich vlt etwas komisch an aber ich versuch es mal genauer zu beschreiben.

    sieht ungefähr so aus:
    --------------------------------
    Event - Datum |Button Erinnern|
    Event - Datum |Button Erinnern|
    Event - Datum |Button Erinnern|
    --------------------------------


    Also ich bekomme ein Datum aus einem XML File, durch ein klick auf einen Button kann der User sich nun eine Erinnerung (in Form einer Notification) setzen.

    Ist sowas möglich, bzw muss man für einen Zeitpunkt in der Zukunft den AlarmManager nutzen?
     
  2. swordi, 26.04.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    alarmmanager ist schon ein guter ansatz
     
  3. Makes, 26.04.2012 #3
    Makes

    Makes Threadstarter Junior Mitglied

    Beiträge:
    26
    Erhaltene Danke:
    0
    Registriert seit:
    26.04.2012
    ja das hab ich mir auch gedacht und angefangen zu testen , nur leider funktioniert das irgendwie nicht wie gedacht :p

    Code:
    //Main klasse, hier wird der Alarm gesetzt und dann soll in 60sekunden eine Notification in einer neuen Activity class gestartet werden
     
         Intent intent = new Intent(AndroidNotificationsActivity.this,
         MyBroadcastReceiver.class);
         PendingIntent pendingIntent = PendingIntent.getBroadcast(AndroidNotificationsActivity.this,
         0, intent, 0);
    
          
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(System.currentTimeMillis());
         calendar.add(Calendar.SECOND, 60);
    
          
         AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
         am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
        }
     
    
    
    
    
    //die klasse wo dann die Notification gesetzt wird
        public MyBroadcastReceiver(){
        Notification("Notification Title","Notification Message");
    
        }
        private void Notification(String notificationTitle, String notificationMessage)
        {
            NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
            Notification notification = new Notification(R.drawable.icon, "A New Message!", System.currentTimeMillis());
     
            Intent notificationIntent = new Intent(this, MyBroadcastReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
     
            notification.setLatestEventInfo(MyBroadcastReceiver.this, notificationTitle, notificationMessage, pendingIntent);
            notificationManager.notify(10001, notification);
        }
    
     
  4. swordi, 26.04.2012 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ja und was funktioniert nicht ?

    wahrscheinlich wird sich niemand detailliert deinen code ansehen ohne anhaltspunkt
     
  5. Makes, 26.04.2012 #5
    Makes

    Makes Threadstarter Junior Mitglied

    Beiträge:
    26
    Erhaltene Danke:
    0
    Registriert seit:
    26.04.2012
    -> alarm wird gesetzt ab 60sekunden ab start
    -> dann soll eine Notification kommen

    diese kommt aber nicht ;)
     
  6. swordi, 26.04.2012 #6
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    hmm und wo setzt du den broadcastreceiver ?
     
  7. Makes, 26.04.2012 #7
    Makes

    Makes Threadstarter Junior Mitglied

    Beiträge:
    26
    Erhaltene Danke:
    0
    Registriert seit:
    26.04.2012
    es fehlte noch ein Eintrag im Manifestfile

    Code:
    <receiver android:name=".MyBroadcastReceiver" />
    sowie ein "extends BroadcastReceiver" in der Broadcast klasse
    jetzt funktionierts :cool2:


    jetzt brauch ich nur noch eine brauchbares Datumsformat :confused2:
    kannst du mir da irgendeinen Tipp geben
     
  8. swordi, 26.04.2012 #8
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    der danke button befindet sich rechts unten


    was meinst du mit datumsformat?

    simpledateformatter ?
     
  9. Makes, 26.04.2012 #9
    Makes

    Makes Threadstarter Junior Mitglied

    Beiträge:
    26
    Erhaltene Danke:
    0
    Registriert seit:
    26.04.2012
    den hab ich gesehen aber noch ist das Thema hier ja nicht durch :laugh:
    keine Angst bekommst dein "Danke" noch :winki:


    @datumsformat,
    für AlarmManager braucht man ja beim set ein LONG für den Zeitpunkt.
    Wollte es jetzt so lösen:
    Code:
    Calendar calendar1 = Calendar.getInstance();
               calendar1.set(2012, 04, 26, 22, 30);
    und dann im set
    Code:
    am.set(AlarmManager.RTC_WAKEUP,
              calendar1.getTimeInMillis(), pendingIntent);
    leider keine Notification :confused:


    edit:

    Fehler gefunden, natürlich ist der April 03 und nicht 04 :D
     
    Zuletzt bearbeitet: 26.04.2012
  10. Makes, 27.04.2012 #10
    Makes

    Makes Threadstarter Junior Mitglied

    Beiträge:
    26
    Erhaltene Danke:
    0
    Registriert seit:
    26.04.2012
    so wenn ich nun 2 verschiedene Events zu verschiedenen Zeitpunkten habe und auf beide Buttons klicke.
    Dann kommt nur die Notification für das zuletzt geklickte!

    gibts da irgendeine Lösung dafür ?

    edit:
    hat sich erledigt , einfach dem pendingIntent verschiedene IDs geben ;)

    Code:
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, position,
           intent, PendingIntent.FLAG_ONE_SHOT);    
    nun aber wieder neue Frage :D
    wie kann ich den Text dynamisch festlegen der in der Notification kommt ?
     
    Zuletzt bearbeitet: 28.04.2012

Diese Seite empfehlen