使用警报管理器将 int 传递给 BroadcastReceiver class

Passing int to BroadcastReceiver class using alarm manager

我正在尝试通过 alarmmanger 传递两个整数,但每当我传递它们时,toast 都会回复 null 。我不明白问题出在哪里。

Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);

        intent.putExtra("passedHour", cal.get(Calendar.HOUR_OF_DAY));
        intent.putExtra("passedMin", cal.get(Calendar.MINUTE));

        PendingIntent alarmIntent = PendingIntent.getBroadcast(
                MainActivity.this, 0, intent, 0);

        AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarmMgr.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                alarmIntent);

这是 alaramreceiver 中的 onreceive class

Toast.makeText(context, "Alarm!! " + intent.getStringExtra("passedHour") + ":" + intent.getStringExtra("passedMin"), Toast.LENGTH_LONG).show();

cal.get() 方法 return int 所以意图是以 int
形式发送值 您需要使用 intent.getIntExtra 方法才能获得 int
所以在onReceive中使用

Toast.makeText(context, "Alarm!! " + intent.getIntExtra("passedHour") + ":" + intent.getIntExtra("passedMin"), Toast.LENGTH_LONG).show();