2016-06-01 13 views
0

私のアプリケーションのalerm型通知を作成していますが、nullポインタエラーに直面しています。ダイアログフラグメントから、nullを示すAlarmManager。ここに私のコードです。ダイアログでAlarmManagerを設定する方法

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

を次のように私はのような内部クラスを作成しますが、アプリケーションはnullポインタエラーを示しています。 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) 

私は誰でもお勧めできますか? setRepeating(....)のalarmMenagerをインスタンス化する方法。

答えて

2

私はのonCreate()メソッドを追加する必要があり、私はアプリケーションを拡張すると、もう一つは...私は、このようにしてみました...しかし、それは動作しませんでした、アプリケーションのクラスにコードを変更

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

を試してみてください??? – opu

関連する問題