代码之家  ›  专栏  ›  技术社区  ›  Nakash.i

当试图从类中调用它时,PendingIntent为null

  •  0
  • Nakash.i  · 技术社区  · 7 年前

    我在建一个闹钟,我买了一个可以挂闹钟的吊坠。同样的代码在活动中运行得很好。我改变了一些东西,现在它在一个不同的类。我得到一个空点执行。(承包商从活动中获得背景。

    休眠功能:

    public void settingNewIntentForSnooze() {
        PendingIntent alarmPendingIntent=null;
        Calendar calendar = Calendar.getInstance();
        // new alarm after the snooze.
        calendar.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) + snoozeTime);
        Intent snoozeIntent = new Intent(context, Alarm_Reciver.class);
        snoozeIntent.putExtra("click_status", true);
        //add that to try to solve the problem...
        snoozeIntent.setAction("Snooze");
        alarmPendingIntent = PendingIntent.getBroadcast(context, 0, snoozeIntent, alarmPendingIntent.FLAG_ONE_SHOT);
        //tells to phone to set the alarm
        alarm_manager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmPendingIntent);
    }
    

    AlarmPage活动(创建变量的代码):

    snooze= new Snooze(this,alarm_manager);
    

    public void onReceive(Context context, Intent intent) {
        Log.e("in alarm reciver","in alarm reciver");
        Intent service_intent= new Intent(context, RingtonePlayingService.class);//intent for the service ringtone playing
        boolean button_status = intent.getExtras().getBoolean("click_status");
        service_intent.putExtra("click_status", button_status);//passing button status
        context.startService(service_intent);//start the ringtone service
    }
    

    错误:

    09-17 18:25:25.564 1563-1563/com.example.itay.newfrindlyalarm E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                Process: com.example.itay.newfrindlyalarm, PID: 1563
                                                                                java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.AlarmManager.set(int, long, android.app.PendingIntent)' on a null object reference
                                                                                    at com.example.itay.newfrindlyalarm.Snooze.settingNewIntentForSnooze(Snooze.java:60)
                                                                                    at com.example.itay.newfrindlyalarm.Snooze.operate(Snooze.java:44)
                                                                                    at com.example.itay.newfrindlyalarm.AlarmPage.operateSnooze(AlarmPage.java:88)
                                                                                    at com.example.itay.newfrindlyalarm.AlarmPage$3.onClick(AlarmPage.java:68)
                                                                                    at android.view.View.performClick(View.java:6256)
                                                                                    at android.view.View$PerformClick.run(View.java:24697)
                                                                                    at android.os.Handler.handleCallback(Handler.java:789)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                                    at android.os.Looper.loop(Looper.java:164)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
    enter code here
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Konstantin Schubert    7 年前

    根据错误消息判断,是否可能 alarm_manager null ? 如果您初始化 AlarmManager 正确地说,错误消失了吗?