2016-08-01 31 views
0

Ich habe eine App erstellt, die es einem Benutzer ermöglicht, Zuweisung Fristen und dann eine Zeit, um benachrichtigt werden, dass die Zuordnung fällig ist, das alles funktioniert, aber ich kann kein klares Beispiel finden wie man die Alarme einen Neustart überleben lässt.
Das Datenbank-Zeug auf dem Empfänger dient nur dazu, die Benachrichtigung mit den spezifischen Zuweisungsinformationen zu füllen. Die Alarme selbst werden nicht in der Datenbank gespeichert, die Zeiten und Daten werden durch Benutzereingaben festgelegt und direkt an den Alarmmanager übergeben. Erstellungsseite
Alarm:machen Alarme überleben boot

Long nIdLong = System.currentTimeMillis(); 
      String nId = nIdLong.toString(); 
    final int _id = (int) System.currentTimeMillis(); 

       Intent alarmIntent = new Intent(context, AlarmReceiver.class); 
       alarmIntent.putExtra("nID", nIdLong); 
       // make sure the intent have id's 
       PendingIntent pendingIntent = PendingIntent.getBroadcast(context, _id, alarmIntent , 0); 

       AlarmManager alarmManager = (AlarmManager)getActivity().getSystemService(getActivity().ALARM_SERVICE); 
       alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent); 

Das ist mein Empfänger:

public void onReceive(Context context, Intent intent) 
    { 
     long dbId = intent.getLongExtra("nID", 0); 
     String notificationId = Long.toString(dbId); 


     Log.i("App", "called receiver method"); 
     try{ 

      userDbHelper = new UserDbHelper(context.getApplicationContext()); 
      sqLiteDatabase = userDbHelper.getReadableDatabase(); 
      cursor = userDbHelper.getAssignmentNotification(notificationId, sqLiteDatabase); 
      if (cursor.moveToFirst()) { 
       do { 

        id = cursor.getString(0); 
        name = cursor.getString(1); 
        subject = cursor.getString(2); 
        date = cursor.getString(3); 
        time = cursor.getString(4); 

       } while (cursor.moveToNext()); 
      } 
      NotificationGenerator.generateNotification(context, date, time, name, subject); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
+0

https://stackoverflow.com/questions/20065433/alarm-doesnt-trigger-after-reboot – CommonsWare

Antwort