背景: 我注意到,對於內經常活動,可以爲任何應用程序打開我的應用程序的活動。android - 是否可以使用私人意圖而不是全局意圖?
問題: 是否有可能只允許我自己的應用程序(或應用程序或包)在同一範圍內發送和接收意圖,以便其他應用程序將無法接收它們或干擾流的應用程序?
例如: 假設我有一個broadcastReceiver偵聽某種意圖,但這個意圖只是意味着被另一個駐留在我的應用程序內的服務/活動使用,或者在我創建的另一個應用程序內部,但我不希望別人能夠使用這個意圖。
請幫幫我。
背景: 我注意到,對於內經常活動,可以爲任何應用程序打開我的應用程序的活動。android - 是否可以使用私人意圖而不是全局意圖?
問題: 是否有可能只允許我自己的應用程序(或應用程序或包)在同一範圍內發送和接收意圖,以便其他應用程序將無法接收它們或干擾流的應用程序?
例如: 假設我有一個broadcastReceiver偵聽某種意圖,但這個意圖只是意味着被另一個駐留在我的應用程序內的服務/活動使用,或者在我創建的另一個應用程序內部,但我不希望別人能夠使用這個意圖。
請幫幫我。
假設我有一個監聽某種意圖的廣播接收器,但這種意圖只是爲了其他服務/活動駐留無論是我的應用程序裏面,或者裏面,我已經創造了另一個應用程序使用,但我不希望別人能夠使用這個意圖。
除了裏諾的正確答案,對於您上面引用的具體要求,請使用LocalBroadcastManager
。您不僅獲得了您所尋求的安全性,而且更高效。 LocalBroadcastManager
在Android支持包中可用,並且AFAIK應該返回到Android 1.6。 Here is a sample project使用LocalBroadcastManager
。
設置限制了這種意圖將解析到組件明確的應用程序包的名稱。如果保留爲默認值null,則將考慮所有應用程序中的所有組件。如果非null,則Intent只能匹配給定應用程序包中的組件。
或者您可以使用setSelector()
,但不能同時使用兩者。
我應該什麼時候使用他們每個人的,什麼是使用它們的優點和缺點是什麼? – 2012-03-17 08:49:17
另外,如何限制我的應用程序的活動,以便他們將無法從其他應用程序啓動?也許在清單中的東西? – 2012-03-19 09:22:33
請[先閱讀本文](http://www.linuxtopia.org/online_books/android/devguide/guide/topics/intents/intents-filters.html)。我能想到的一種方法是檢查一個額外的。有點像令牌,如果令牌傳遞的是你期望的令牌:啓動活動。 – Reno 2012-03-19 13:32:40
你能否認爲更多?它如何變得更快?它是如何工作的?是否像直接發送對象?如果是這樣,是否也建議爲了在活動和服務之間發送快速(高頻率)的數據? – 2012-03-17 08:51:19