小编Den*_*mer的帖子

BroadcastReceiver 的 onReceive 中的 Intent extras 为空

我想BroadcastReceiver 类的onReceive()方法中的Intent 获取一些参数。但是只有 int ALARM_COUNT = 1,虽然我放了两个参数:我的 Parcelable Alarm 对象和 test int(对于警报对象有问题的情况)。

我这样设置闹钟:

private void setCurrentAlarm(Alarm alarm) {
        long time = System.currentTimeMillis() + getClosestTimeDifference(alarm);

        mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, createPendingIntent(alarm));
    }
Run Code Online (Sandbox Code Playgroud)

我是如何创建 PendingIntent 变量的:

private PendingIntent createPendingIntent(@NonNull Alarm alarm) {
        Intent intent = new Intent(mContext, AlarmBroadcastReceiver.class);

        intent.putExtra(KEY_ALARM, alarm);
        intent.putExtra("TEST", 1010120012);

        return PendingIntent.getBroadcast(mContext, alarm.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
    }
Run Code Online (Sandbox Code Playgroud)

我的 AlarmBroadcaseReceiver 类中的 onReceive() 方法:

    @Override
    public void onReceive(Context context, Intent intent) {
           Alarm receivedAlarm = intent.getParcelableExtra(KEY_ALARM); //is always null
           int …
Run Code Online (Sandbox Code Playgroud)

android alarmmanager android-intent android-broadcastreceiver

8
推荐指数
1
解决办法
1445
查看次数