【问题标题】:How to setAlarmManager at Dialog fragment in android如何在android中的Dialogfragment中设置警报管理器
【发布时间】:2016-06-01 06:09:02
【问题描述】:

我正在为我的应用程序创建警报类型通知。但面临空指针错误。从对话框片段中,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);
        } 

为了实例化警报管理器,我创建了一个内部类,如下所示

   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;

【问题讨论】:

    标签: android alarmmanager android-broadcast dialogfragment


    【解决方案1】:

    尝试更改应用程序类中的代码

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

    【讨论】:

    • 我尝试过这种方式...但它没有用...另一件事,当我扩展应用程序时,我应该添加 onCreate() 方法吗???
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多