有沒有簡單的方法來確定一個Intent
是顯式的還是隱式的?如何檢查意圖是明示還是隱含?
我試圖在the Android docs中推薦使用推薦行爲的導航抽屜,即應用程序啓動時抽屜應該自動打開,直到用戶手動打開抽屜。
但是,使用導航抽屜的活動可以從我的應用程序中的多個位置開始,也可以從其他位置開始。我只想在我的應用程序外部啓動活動時纔打開抽屜,但我無法找到一個簡單的方法來查明意圖來自哪裏。
有在Intent
幾種方法最初看起來前途無量:(!這裏你已經知道)
getComponent()
似乎讓你在發送端的相關信息(NULL/NOT NULL)但根據文檔在接收端從不爲空。hasCategory()
可用於查找已知類別的外部意圖,如android.intent.category.LAUNCHER
。這可能是我最終使用的,但我寧願有一個通用的解決方案,而不是在這裏解釋每種可能性。getPackage()
看起來可能會做正確的事情,但除非我沒有正確使用它,否則它似乎總是在我的測試中返回null。
另外,我總是可以使用putExtra()
一個標誌添加到我的所有內部的意圖,但那種感覺太像一個黑客,所以我寧願避免它,如果有另一種選擇。