Androidのソースを見ると、結果の余分なデータを含むBundleを取得する一般的な方法が2つあります。BroadcastReceiver.getResultsExtra()とIntent.getExtras()との比較
A.はgetResultsExtra()
private class StatusBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle b = getResultExtras(true);
}
}
B.は、なぜあなたは他の方法に比べて一つの方法を選ぶだろうintent.getExtras()
private class StatusBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle b = intent.getExtras();
}
}
を呼び出し呼び出し?ある方法が他の方法より優先される特定の状況がありますか?彼らは同等ですか?
だから私は、値のいずれかとAMを変更しておりません場合値を読むことにのみ興味があり、2つは同等ですか? – GrandAdmiral
ああ、いいえ。 getResultExtras(bool)のboolがtrueに設定されている場合、以前の受信者から送信された値(マップ)が取得されます(前のマップがnullの場合は新しい空のマップが返されます)。 intent.getExtras()は、 'sendBroadcast(intent);'を使ってブロードキャストが開始されたときに設定された値だけを持ちます。したがって、getResultExtras(bool)はintent.getExtras()と同じ値を持ちません! –