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個のものしか含まれていませんが、私のエキストラはありません。

どうすればよいですか?どうすれば入手できますか?

+0

こんにちはデニスは、私はhttps://stackoverflow.com/a/42181785/7542998このリンクをお勧めしますonReceive、あなたの方法で「TEST」の値を持つことになります、それはすべての情報を持っていますalarmManagerの使い方を理解するためのものです。 – Diekrul

答えて

0

こんにちはDenisあなたはStringのような値をintに解析した後に送ることができます。

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); 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
     Alarm receivedAlarm = intent.getParcelableExtra(KEY_ALARM); //is always null 
     Bundle extras = intent.getExtras(); 
     String testString = (String) extras.get("TEST"); 
     int test = Integer.parseInt(testString) 
} 

そして

関連する問題