Android 在AlarmManager onReceive中取消报警

Android 在AlarmManager onReceive中取消报警,android,alarmmanager,Android,Alarmmanager,主活动警报启动 这是密码 私人吊挂帐篷; 私人警报经理 Intent alarmIntent = new Intent(this, AlarmReceiver.class); pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0); manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); int interva

主活动警报启动 这是密码 私人吊挂帐篷; 私人警报经理

    Intent alarmIntent = new Intent(this, AlarmReceiver.class);
    pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);

    manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    int interval = 10000; // 10 seconds

    manager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(), interval, pendingIntent);
    Toast.makeText(this, "Alarm Set", Toast.LENGTH_SHORT).show();
以及如何在AlarmReceiver.class中取消报警

   public class AlarmReceiver extends BroadcastReceiver {

static DatabaseHandler dbHandler;

private PendingIntent pendingIntent;
private AlarmManager manager;

     public void onReceive(Context context, Intent intent) {
             // SHOW NOTIFICATION
         Log.e("DAYDAY", "" + "pasok");
         int days = 1;
         Toast.makeText(context, "DAYDAY", 10).show();
            if (days == 5) {
                dbHandler.deleteUser();

                    manager.cancel(pendingIntent);
                     Toast.makeText(context, "Canceled", 10).show();

            }else{
                int = days + 1;
                 dbHandler.update_days(i, emp_id, birthday);
            }


     }
}

如果天等于5,那么我将取消警报。
但错误是管理器为空指针。

每次使用管理器时,都需要手动调用:

manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

你必须通过使用


manager=(AlarmManager)context.getSystemService(context.ALARM\u服务)您得到的是空指针,因为
pendingent
'alarm manager'
在代码中的任何地方都没有初始化

要取消报警,请尝试以下代码-

Intent alarmIntent = new Intent(this, AlarmReceiver.class);
// get pending intent by unique tag value assigned previously
int tag = 0;
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, tag, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
manager.cancel(pendingIntent);
Toast.makeText(this, "Alarm Canceled", Toast.LENGTH_SHORT).show();