簡體   English   中英

如何在Android中的對話框片段處設置AlarmManager

[英]How to setAlarmManager at Dialog fragment in android

我正在為我的應用程序創建alerm類型通知,但是遇到空指針錯誤,在對話框片段中,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;
           }
       }

但是應用程序顯示空指針錯誤。 喜歡

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;

嘗試在您的應用程序類中更改代碼

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM