Beim Betrachten der Android-Quelle, beobachte ich zwei gängige Methoden, um das Bundle mit den zusätzlichen Daten des Ergebnisses zu erhalten.BroadcastReceiver.getResultsExtra() vs. Intent.getExtras()
A. Anrufe getResultsExtra()
private class StatusBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle b = getResultExtras(true);
}
}
B. intent.getExtras()
Calls
private class StatusBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle b = intent.getExtras();
}
}
Warum würden Sie eine Methode, über die andere Methode wählen? Gibt es bestimmte Situationen, in denen man gegenüber der anderen Methode bevorzugt wird? Sind sie gleichwertig?
Also, wenn ich keinen der Werte verändert und bin nur daran interessiert, die Werte zu lesen, sind die beiden gleichwertig? – GrandAdmiral
ah, nein. Wenn bool in getResultExtras (bool) auf true gesetzt ist, erhalten Sie die vom vorherigen Empfänger gesendeten Werte (map) (neue leere Map wird zurückgegeben, wenn die vorherige Map null ist) und wenn sie auf false gesetzt ist, wird eine Nullmap zurückgegeben. und intent.getExtras() hat nur die Werte, die beim Start der Übertragung mit 'sendBroadcast (intent);' festgelegt wurden. Also wird die getResultExtras (bool) nicht dieselben Werte haben wie intent.getExtras()! –