基本上,它很清楚的區分的隱式和顯式意圖經由 setComponent(組件名稱)或setClass(上下文的Android -O - 困惑隱意向definiton的和顯式意圖
已指定的成分顯式意圖( ,Class)),其中 提供了要運行的確切類。通常這些將不包括任何其他信息,僅僅是作爲用戶與 應用程序交互時應用程序啓動其所具有的各種內部活動的方式。
隱含意圖未指定組件;相反,它們必須包含足夠的信息以供系統確定哪個可用組件最適合爲該意圖運行。
但我通過谷歌的https://developer.android.com/about/versions/oreo/background.html#broadcasts
例如引入混淆,ACTION_PACKAGE_REPLACED一個隱含的廣播,因爲 將其發送到所有已註冊的聽衆,讓他們知道一些 包在設備上被替換。但是, ACTION_MY_PACKAGE_REPLACED不是一個隱含的廣播,因爲它是 只發送到其包已被替換的應用程序,無論有多少 其他應用程序已爲該廣播註冊偵聽器。
爲什麼ACTION_MY_PACKAGE_REPLACED不是一個隱含的廣播?
「它只發送到包被替換的應用程序」 - 這意味着「Intent」被創建爲針對爲該廣播註冊的組件,並且它攜帶「ACTION_MY_PACKAGE_REPLACED」動作。顯式的'Intent's也可以有動作。 –
是的,我知道明確的*意圖*也可以有行動,我的疑問是爲什麼ACTION_MY_PACKAGE_REPLACED被視爲顯式。 –
你的意思是這個動作是由系統發送時指定的目標包嗎? –