2016-06-01 91 views
0

我正在为我的应用程序创建一个alerm类型通知,但面临一个空指针error.From对话框片段,AlarmManager指示空。这是我的代码。如何setAlarmManager在Android中的对话框片段

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

而且实例化Alarmanager我创建了一个内部类似如下

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

但是应用程序显示了一个空指针错误。像

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) 

任何人都可以建议我。如何为setRepeating(....)实例化alarmMenager;

回答

2

尝试在你的应用程序类

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

我用这种方式试图改变的代码......但它没有工作......另一件事,当我伸出应用,我要补充的onCreate()方法??? – opu

相关问题