1
私はにインテントからいくつかの引数を受け取りますonReceive() BroadcastReceiverクラスのメソッドを取得します。しかし、int ALARM_COUNT = 1しかありませんが、私は2つの引数をとります:Parcelable Alarmオブジェクトとtest int(アラームオブジェクトに問題がある場合)。BroadcastReceiverのonReceiveでインテントエクストラが空です
私はこのようなアラームを設定します。
private void setCurrentAlarm(Alarm alarm) {
long time = System.currentTimeMillis() + getClosestTimeDifference(alarm);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, createPendingIntent(alarm));
}
私は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);
}
そして、私のAlarmBroadcaseReceiverクラスのonReceive()メソッド:
@Override
public void onReceive(Context context, Intent intent) {
Alarm receivedAlarm = intent.getParcelableExtra(KEY_ALARM); //is always null
int receivedInt = intent.getIntExtra("TEST", -1); //the same empty, -1
}
として、インテントには余分なALARM_COUNT個のものしか含まれていませんが、私のエキストラはありません。
どうすればよいですか?どうすれば入手できますか?
こんにちはデニスは、私はhttps://stackoverflow.com/a/42181785/7542998このリンクをお勧めしますonReceive、あなたの方法で「TEST」の値を持つことになります、それはすべての情報を持っていますalarmManagerの使い方を理解するためのものです。 – Diekrul