2011-09-13 8 views
3

アプリケーションをインストールした後、ランチャーに2つのアイコンが表示されるという目標を達成したいと思います。どちらか一方をクリックすると、対応するアクティビティが起動します。下部のXMLとJavaコードを使用すると、すべてが一つの場合を除いて、正常に動作するようです:1つのインストールされたアプリ、2つのランチャーアイコンを達成するには?

BUG:
活動1
ステップ2. ホームアイコンを開始するための手順1. [アイコン1 Launcherにスウィッチする
ステップ3. Launcherからアイコン2をクリックします。
期待される結果:アクティビティ2が開始されます。
実際の結果:アクティビティ1が再開されます。私は戻って、彼はランチャーに取得する代わりにホームボタンの戻るボタンをクリックすると、ステップ2で、ステップ3が成功することを

は注意してください。しかし、私がホームボタンを使用した場合、バグが発生します。誰かが私に何を混乱させたのか教えてもらえますか?非常に感謝します!

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity 
     android:name=".TestActivity1" 
     android:label="Test 1"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".TestActivity2" 
     android:label="Test 2"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 


// The first activity 
public class TestActivity1 extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 


// The second activity, it uses a different content view 
public class TestActivity2 extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main2); 
    } 
} 
+0

'android:taskAffinity ="。TestActivity2 "'属性を2番目のアクティビティに追加すると、これを修正する必要があります。 – Alex

+0

アレックス、ありがとう。それがまさに私が必要としていたものです。ありがとう。 – wwyt

答えて

5

あなたのアクティビティには異なるタスクアフィニティを与えて、独立しています。

+0

K-ballo、本当にありがとう、それはまさに私が望んでいたものです。私は2番目のアクティビティにアンドロイド:taskAffinity = "com.mycomany.test.TestActivity2"という行を追加しました。ありがとうございました。 – wwyt

関連する問題