android - 向 BroadcastReceiver 发送附加信息

标签 android broadcastreceiver android-intent android-pendingintent

我有一个运行以下代码的 Activity (定义了时间和间隔):

Intent buzzIntent = new Intent(getBaseContext(), BuzzReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, buzzIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
buzzIntent.putExtra("interval", interval);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, interval * 60 * 1000, pendingIntent);

和一个具有以下 onReceive 的 BroadcastReceiver:

@Override
public void onReceive(Context context, Intent intent) {
    try {
        int interval = intent.getIntExtra("interval", -1);
        <... more code ...>
    } catch (Exception e) {
        e.printStackTrace();
    }
}

但是 intent.getIntExtra() 返回 -1(这不是 Activity 中的间隔值,我检查过),所以出于某种原因 BroadcastReceiver 没有获得我存储在 Intent 中的额外内容 Activity 。

我尝试了很多不同的方法,但似乎没有任何效果。我在这里遗漏了什么吗?

最佳答案

在创建未决 Intent 时设置标志 FILL_IN_DATA,如下所示:

PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, buzzIntent, Intent.FILL_IN_DATA);

此更改后,您应该会在广播接收器中收到额外的内容。

关于android - 向 BroadcastReceiver 发送附加信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5216177/

相关文章:

android - 适用于 Android 的轻量级文本索引 api 库

android - 任务 ':app:compressDebugAssets' 执行失败

Android Messenger 应用程序使用服务

android - 从另一个 Activity 启用按钮

android - 如何通过 Intent Extras?

android - 如何从 View 寻呼机访问 View

java - TextView 和 Intent

android - Android无法杀死的进程?

Android - 如何检测 Action 媒体按钮长按

java.lang.NullPointerException : error - app is not opening 异常