根據Android文檔Intent額外名稱必須有包前綴。我一直使用Intent額外名稱而且沒有前綴很長一段時間,似乎沒有碰撞的機會,因爲真正重要的是Intent行爲是唯一的。那麼這些文檔是錯的還是我錯過了一些東西?爲什麼Android文檔說意圖額外需要包前綴
爲putExtra文檔說:
擴展數據添加到意圖。該名稱必須包含包前綴,例如com.android.contacts應用程序將使用「com.android.contacts.ShowAll」之類的名稱。
根據Android文檔Intent額外名稱必須有包前綴。我一直使用Intent額外名稱而且沒有前綴很長一段時間,似乎沒有碰撞的機會,因爲真正重要的是Intent行爲是唯一的。那麼這些文檔是錯的還是我錯過了一些東西?爲什麼Android文檔說意圖額外需要包前綴
爲putExtra文檔說:
擴展數據添加到意圖。該名稱必須包含包前綴,例如com.android.contacts應用程序將使用「com.android.contacts.ShowAll」之類的名稱。
我相信Android文檔推薦使用完全合格的演員來處理不常見的邊緣情況。邊緣的情況是,當你:
和
唷,這一切聽起來都不太可能。如果你沒有處理公開的意圖行爲,那麼它似乎仍然沒有必要完全限定你的額外行爲,但是如果你是偏執狂類型的話,我認爲它始終沒有傷害。
意圖可以傳遞到其他應用程序和它自己的系統,所以禮貌是使用包名稱空間。
我不明白爲什麼它會禮貌。爲什麼系統或其他應用程序正在看我的演員,他們不應該盲目地傳遞它嗎?其次,這個動作有包名,爲什麼每一個額外都需要它? – satur9nine
難道你不只是提供一個額外的包?在類似這樣的情況下,您最好首先檢查其原始包,然後基於此處理Extras,除非某些發送的活動可以添加其他發送活動的含義(這可能最終導致混亂,但如果您設置某種代理活動或服務來操縱其傳遞的意圖的附加內容,可能會有用。 – JAB
我同意@JAB。默認情況下,您不會基於請求者處理任何不同的「額外」意圖數據,但如果您要這樣做,則需要提供包名稱作爲額外的「額外」意圖數據,所以你可以很容易地區分**和**驗證? –
您可以提供並要求您的軟件包名稱作爲又一個額外的內容,並且可以確保您的應用程序安全,但其他應用程序不會檢查該非標準附加內容。因此,如果您使用公開意向操作,並未完全限定所有非標準附加名稱,則可能會破壞其他應用程序。 – satur9nine