2011-09-04 37 views
6

我正在學習如何使用隱含的意圖,意圖過濾器一起,和迄今無法得到正確的活動火。用來防火的意圖的代碼是:無法獲取隱性意圖工作

intent = new Intent(); 
intent.setAction("com.appsculture.intent.action.PLUGIN_RECEIVER"); 
startActivity(intent); 

而且所需活性的意圖過濾器是:

<activity android:name="PluginReceiver"> 
<intent-filter> 
    <action android:name="com.appsculture.intent.action.PLUGIN_RECEIVER"></action> 
</intent-filter> 
</activity> 

我得到的錯誤是標準ActivityNotFound

09-04 17:15:27.827: ERROR/AndroidRuntime(2552): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.appsculture.intent.action.PLUGIN_RECEIVER } 

解決方案:只需addeded的android.intent.category.DEFAULT類別的意圖過濾器

作品就像你有

回答

4

我設法通過簡單地將android.intent.category.DEFAULT類別的意圖過濾器來解決這個問題。之後就像一個魅力。

由於Commonsware在他的回答評論所指出的,需要活動的類別,雖然沒有對服務或廣播接收機。

3

一切後的魅力應該就有天晴,但我會用new Intent("com.appsculture.intent.action.PLUGIN_RECEIVER"),並利用RECEIVER似乎是一個Activity奇數片的動作名稱,而不是BroadcastReceiver

如果這是兩個獨立的應用程序,確保兩個安裝在您的設備或模擬器上,用最新的代碼(即,您沒有進行更改,然後不安裝更新的應用程序)。

+0

嗨CommonsWare, 我以前使用過你的建議Intent定義(我只切換到intent.setAction,因爲早期的方法保持失敗)。結果是相同的ActivityNotFoundException。這兩個活動「屬於同一個應用程序,因此問題不在於它們是否已更新。 我知道命名不是最好的,我會去改變它。這個名字主要是我覺得最適合這個活動的目的的。 –

+0

我已經發布瞭解決方案,我發現問題 –

+2

啊,有趣。對於服務和廣播接收器的自定義操作,您不需要一個類別。我忘了你需要一個活動。我錯過了這個道歉。 – CommonsWare