次のコードを実行するアクティビティがあります (時間と間隔が定義されています)。
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 の interval の値ではないことを確認しました)。そのため、何らかの理由で、BroadcastReceiver は、Activity のインテントに保存したエクストラを取得していません。
私はたくさんのことを試しましたが、何もうまくいかないようです。ここで何か不足していますか?