2012-01-11 70 views
6

我有一個包含有應用與2個發射活動

 <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
在清單

兩項活動的應用程序。我這樣做是爲了在應用程序抽屜中有兩個單獨的條目。它適用於應用程序抽屜的原樣。

我的問題出現在安裝過程中。在僅安裝了一個MAIN/LAUNCHER活動的應用程序後,最後一頁有一個打開的按鈕,用於啓動剛剛安裝的應用程序。用我的應用程序這個打開的按鈕是灰色的。我認爲這是因爲它不知道如果打開按鈕被按下,我希望它啓動兩個活動中的哪一個。在清單(或其他地方)中是否可以設置任何我想要在安裝過程結束時啓動打開按鈕的活動?我認爲必須有一些我可以設置的東西,因爲當我通過adb和eclipse安裝應用程序時,它啓動了兩個活動中的一個,幸運的是它實際上是我希望它啓動的那個。

回答

7

這個問題:

After downloading an application with two Launcher components from the Marketplace, clicking "Open" will cause a crash

幫助我得到它的工作我想怎樣。關鍵是添加:

<activity-alias android:name="com.android.internal.app.ResolverActivity" 
      android:targetActivity=".Main" android:exported="true"> 
    </activity-alias> 

的清單,並改變「主要」引用您希望開始與在安裝結束時,打開按鈕的活動。

注意的是,活動的別名標籤必須聲明活動標籤之後,你指的是(在XML)。

0

我建議你有1個活動讀取偏好,並決定繼續當前的活動或打開另一個活動。

如果您不想開始新活動,請嘗試給適當的片段充氣。

+1

是的,你可以,他們只會在主屏幕上顯示爲單獨的圖標。 – harism 2012-01-11 23:27:28

+1

我希望在應用程序抽屜中有2個獨立的圖標。 – FoamyGuy 2012-01-12 14:38:03

1

Android文檔強烈建議,如果您要從主屏幕啓動多個活動,則每個活動都將在其自己的任務中啓動。看看this article瞭解更多信息。

這樣做時,每個任務都會有一個單獨的taskAffinity值。 I 認爲設置爲與應用程序包相同親和力的任務是安裝程序將要啓動的任務。

+0

謝謝你的鏈接。我嘗試將兩個啓動器活動設置爲不同的任務親和力,並將應用程序元素上的任務關聯設置爲與我希望在安裝後啓動的活動相同。但仍然沒有運氣,打開的按鈕變灰了。 – FoamyGuy 2012-01-12 14:51:06