2015-02-06 61 views
1

我寫了兩個不同的應用程序,我們將其稱爲AppA和AppB。我正在嘗試使用意向從AppB開始AppA中的活動。我試圖用明確的意圖來實現這一點。使用顯式意圖在不同的應用程序中開始活動

在APPB,我創建這樣的意圖:

ComponentName cn = new ComponentName("com.example.user.appa", 
      "appaActivity"); 
    Intent infoIntent = new Intent(); 
    infoIntent.setComponent(cn); 
    infoIntent.setAction("com.example.DO_SOMETHING"); 
    infoIntent.putStringArrayListExtra("arrList", incInfo); 
    startActivity(infoIntent); 

在AndroidManifest.xml的APPA,我已經包括以下內容:

<activity 
    android:name=".appaActivity" 
    android:label="@string/title_activity"> 
    <intent-filter> 
     <action android:name="com.example.DO_SOMETHING"/> 
    </intent-filter> 
</activity> 

當我嘗試運行APPB(其發送意圖到AppA,我得到以下錯誤:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.appb/com.example.user.appb.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.user.appa/appaActivity}; have you declared this activity in your AndroidManifest.xml? 

因爲我可以清楚地看到我已經定義APPA AndroidManifest.xml中的appaActivity,誰能告訴我我可能忽略的是什麼?

+0

您是否嘗試添加「」以進行intent-filter? – atastrumf 2015-02-06 19:08:34

+0

由於這是一個明確的意圖,我不需要指定默認值,因爲我直接調用該活動。但是,我確實解決了這個問題。我沒有意識到我需要指定類名的完整路徑作爲我的ComponentName對象的第二個參數。 還是謝謝! – CoffeeSaurus 2015-02-06 19:24:26

回答

2

我解決了我自己的問題!

在AppB的ComponentName對象中,我沒有提供類名的完整路徑(我沒有意識到這是必要的)。一旦我補充說,它就像一個魅力。

相關問題