2012-11-15 49 views
0

我很困惑。來自不同包裝的啓動程序的活動意圖過濾器操作名稱

我有兩個活動來自不同的包,比方說,「com.exampleone.a」和「com.exampletwo.b」。他們在同一個項目下。

在單清單XML,由於效率的原因,我選擇申報「com.exampleone」作爲包,即

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.exampleone" 
      ....../> 

這樣,對於意向濾波器上的其他活動我使用...

<intent-filter> 
    <action android:name="com.exampletwo.b" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 
在我的計劃,我想去com.exampletwo.b,我會使用

所以......

Intent myIntent = new Intent("com.exampletwo.b"); 
startActivity(myIntent); 

碰巧(是的,生活),我最終決定我必須使用activity「com.exampletwo.b」作爲啓動器。所以我試着把它變成一個啓動器...

<intent-filter> 
    <action android:name="com.exampletwo.b" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 

...這不起作用(它給出'沒有啓動器活動發現'錯誤)。我不能重命名行動...

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

...因爲當時我也有些問題涉及到本次活動(注意,在整個項目中,我一直在使用「com.exampletwo.b 「爲我的意圖)。

有沒有一種方法可以讓啓動器工作,最好不必重命名任何東西?

我想我可能通過創建虛擬啓動器活動來實現這個工作,但是有沒有更簡單的方法來解決這個問題?

回答

0

爲什麼只是不做一個活動,你可以選擇其他活動開始。 類似於LauncherActivity,FromOnePackageAct,FromTwoPackageAct。 然後在LauncherActivity您可以跳轉到其他:

public class LauncherActivity... 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Intent intent = new Intent(this, FromOnePackageAct.class);//here´s the trick 
    from.startActivity(intent); 
// from.finish(); this is optional 

希望這可以爲你提供一個想法:-)

相關問題