在我的androidManifest中,我的mainActivity幾乎沒有系統意圖過濾器。可以通過android服務或活動知道哪個意圖打開了它?
有沒有什麼辦法來檢測哪個意圖過濾器打開我的活動?
同樣去android服務 - 有沒有辦法檢測?
我知道一個broadcast
有一個ctor意圖,我可以分析哪個意圖醒了。
在我的androidManifest中,我的mainActivity幾乎沒有系統意圖過濾器。可以通過android服務或活動知道哪個意圖打開了它?
有沒有什麼辦法來檢測哪個意圖過濾器打開我的活動?
同樣去android服務 - 有沒有辦法檢測?
我知道一個broadcast
有一個ctor意圖,我可以分析哪個意圖醒了。
在活動中,您可以使用getIntent()方法檢索用於啓動該活動的意圖。
公衆意向getIntent()
返回已啓動該活動的意圖。
在你服務可以檢查通過參數收到的onStartCommand(..)方法的意圖:
public int onStartCommand (Intent intent, int flags, int startId)
然後在這兩種情況下,你的「來電顯示」的意圖,你可以比較其值,例如動作,要檢查使用了哪個過濾器:
intent.getAction().equals(YOUR_FILTER_ACTION);
或者,如果您有其他意圖用,你可以使用filterEquals()方法來比較:
intent.filterEquals(anotherIntent);
希望它有幫助。
您可以在Activity的onCreate()上使用方法getIntent()來獲取啓動活動或服務的意圖,然後從意圖獲取操作和額外內容。
但是,你無法知道誰叫你的活動或服務,這是不可能在android中知道的。