0

I am creating a alerm type notification for my application.But facing a null pointer error.From a dialogfragment, AlarmManager indicating the null. Here is my code.

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);
        } 

And for instantiating the Alarmanager I created a inner class like as follows

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

But application shows up an null pointer error. like

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)

Can anyone suggest me. How to instantiate the alarmMenager for setRepeating(....);

1 Answers1

2

try changing the code in your application class

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;
       }
   }
Sohail Zahid
  • 8,099
  • 2
  • 25
  • 41
mdDroid
  • 3,135
  • 2
  • 22
  • 34