2016-06-01 18 views
0

Ich erstelle eine Benachrichtigung vom Typ "alerm" für meine Anwendung.Aber mit einem Null-Zeiger-Fehler. Aus einem Dialogfragment, AlarmManager zeigt die Null an. Hier ist mein Code.Wie man AlarmManager bei Dialog-Fragment in Android setzt

if(alermId>=0){ 
     Log.e("Alerm Id: ",""+alermId); 
      Intent alermReceiver = new Intent(getActivity(), AlermReceiver.class); 
      alermReceiver.setAction(DietInformation.ACTION_DIET); 
      alermReceiver.putExtra("title",titleView.getText()); 
      alermReceiver.putExtra("day",repeatView.getText()); 
      alermReceiver.putExtra("menu",menuView.getText()); 
      PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity(),alermId,alermReceiver,0); 
      //ApplicationData.getAlarmManager().setRepeating(AlarmManager.RTC_WAKEUP,reminderTimeInMills,24*60*60*1000*7,pendingIntent); 
      //ApplicationMain.getAlarmManager().setRepeating(AlarmManager.RTC_WAKEUP,reminderTimeInMills,24*60*60*1000*7,pendingIntent); 
      //alarmManager = 
      AlarmClass.getAlarmManager().setRepeating(AlarmManager.RTC_WAKEUP,reminderTimeInMills,24*60*60*1000*7,pendingIntent); 
     } 

Und für die Alarmanager Instanziieren habe ich eine innere Klasse wie als

static class AlarmClass extends Application{ 
      public static AlarmManager alarmManager; 
      AlarmClass(){ 
       alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
      } 
      public static AlarmManager getAlarmManager() { 
       return alarmManager; 
      } 
     } 

folgt Aber Anwendung zeigt ein Nullzeiger-Fehler auf. wie

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.AlarmManager.setRepeating(int, long, long, android.app.PendingIntent)' on a null object reference 
      at com.softmaker.gazi_opu.personalhealthcare.fragment.CreateDietFragment.setReminder(CreateDietFragment.java:406) 

Kann mir jemand vorschlagen. So instanziieren Sie den alarmMenager für setRepeating (....);

Antwort

2

versuchen, den Code in Ihrer Anwendungsklasse Ändern

static class AlarmClass extends Application{ 
     public static AlarmManager alarmManager; 
     Context mContext; 
     AlarmClass(){ 
      mContext = this; 
      alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
     } 
     public static AlarmManager getAlarmManager() { 

      if(alarmManager==null){ 

      alarmManager = (AlarmManager) mContext.getSystemService(ALARM_SERVICE); 

      } 
      return alarmManager; 
     } 
    } 
+0

ich auf diese Weise versucht, ... aber es hat nicht funktioniert ... Eine andere Sache, wie ich Anwendung erstreckt, Soll ich onCreate() -Methode hinzufügen ??? – opu