2012-01-19 36 views
34

我已經打上意圖過濾兩項活動兩個發射活動

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.package" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="7" /> 

<application 
    android:name=".MyApp" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 

    <!-- work order activity --> 
    <activity 
     android:name=".app.WorkOrderActivity" 
     android:label="@string/work_order" 
     android:taskAffinity="com.package.task_for_work_order_activity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <!-- inventory activity --> 
    <activity 
     android:name=".app.InventoryActivity" 
     android:label="@string/inventory" 
     android:taskAffinity="com.package.task_for_inventory_activity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

的問題是,當我安裝apk文件,也沒有顯示出活性,因爲,我的理解系統無法指定應該顯示的活動。

我真的很需要在啓動器中顯示的兩項活動,所以請不要給意見有關從次活動除意圖過濾器,或者,如果你這樣做給我提供另一種方式來顯示啓動兩個圖標。

+0

泰爾取悅更多的細節,你爲什麼需要它? – Natali

+1

因爲我有兩個完全分離的UI模塊,我讓他們在不同的活動,並希望他們都能夠從Android的信息中心進行訪問。 – Orest

+0

使用最新的Android版本,上面的代碼工作正常 - 在android清單中聲明的​​第一個活動獲取首選項並顯示給用戶。 – bschandramohan

回答

65

答案您需要通過添加下面一行到你的意圖過濾器來指定哪些活動是默認的一個:

<category android:name="android.intent.category.DEFAULT"/> 

插入這個默認的活動,並保持休息。那麼它應該工作。

您可能還需要一個不同的圖標添加到您的第二個活動與屬性android:icon="@drawable/myothericon"

+0

AH這是我正在尋找的東西,但我找不到它。這是正確的答案。 –

+0

一年,這對我來說是有用的。 – wangzhengyi

2

我認爲這是因爲「android.intent.action.MAIN」行動,這個工作對我來說:

<application> 
    <activity android:name=".MyActivityA" android:icon="@drawable/aicon" android:label="@string/app_name"> 
     <intent-filter> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".MyActivityB" android:icon="@drawable/bicon" android:label="@string/app_name"> 
     <intent-filter> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
+2

我試過了,但在這種情況下,第二個活動不會出現在我的發射..我找不到it..maybe的解決方案它是Android 2.1的 – Orest

+0

問題沒有我試着刪除第二個主要的行動和模擬器中運行它2.3.3並沒有使用 – Orest

+0

嗯,你可以在你的問題中發佈你的整個清單嗎? – Reno

1

似乎有可能通過使用任務親和屬性有多個啓動活動。看到https://stackoverflow.com/a/3270422/819904

+0

永遠不要發佈基本上是「其他地方」的答案...鏈接可能會被刪除或更改......即使如此,它就像你顯示其他用戶這樣:「你想解決這個問題?在這裏,去那裏...「然後變成」循環邏輯工作,因爲循環邏輯工作,因爲循環邏輯工作,因爲'goTo(charAt(0)'「 – Bonatti

+0

請閱讀此鏈接:」[提供鏈接的上下文] 「指出:鼓勵連接到外部資源,但請在鏈接上添加上下文,以便您的同行用戶瞭解它是什麼以及它爲什麼在那裏。這是一個重要鏈接中最相關的部分,以防目標站點無法訪問或永久脫機 – Bonatti

+0

我只是要求你回答一個問題,通過給出答案,而不是將任何人重定向到其他任何地方(甚至是「內部」stackoverflow域)同樣,該問題的擁有者可以「刪除」 ETE」的問題,答案可以eddited,甚至這個問題本身被關閉.....我要問你是提高你回答的東西的方式,在某種程度上幫助別人。 – Bonatti

1

添加與定義android:name屬性<action>項目都意圖過濾器:

<application 
    android:name=".MyApp" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 

    <!-- work order activity --> 
    <activity 
     android:name=".app.WorkOrderActivity" 
     android:label="@string/work_order" 
     android:taskAffinity="com.package.task_for_work_order_activity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <action android:name=".app.WorkOrderActivity"/> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <!-- inventory activity --> 
    <activity 
     android:name=".app.InventoryActivity" 
     android:label="@string/inventory" 
     android:taskAffinity="com.package.task_for_inventory_activity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <action android:name=".app.InventoryActivity"/> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application>