查看Android源代碼時,我觀察到了獲取包含結果額外數據的Bundle的兩種常用方法。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();
}
}
爲什麼你會選擇通過另一種方法一種方法?是否有某些情況下優先於其他方法?它們是否相同?
所以,如果我不改變任何值,並且是隻對閱讀價值感興趣,兩者相當? – GrandAdmiral
啊,不。如果getResultExtras(bool)中的bool設置爲true,那麼您將獲得前一個接收器發送的值(映射)(如果前一個映射爲null,則返回新的空映射),如果設置爲false,則返回空映射。而intent.getExtras()只有在使用'sendBroadcast(intent);'開始廣播時設置的值。所以getResultExtras(bool)將不會有intent.getExtras()所具有的值! –