2011-12-06 3 views
1

の代わりにAndroidアプリがMAIN/LAUNCHERをもう一度呼び出す、まだ生きている、onStop予想通り。アンドロイドアプリ - アクティビティB - が(アンドロイドのホームボタンを押している)バックグラウンドに移動したとき、onResume()

アクティビティBは、ここでは破壊されていないが、ユーザーが再びアプリのアイコンをクリックしたとき、それは代わりにアクティビティBにonResume()を呼び出すと、アクティビティAを出発して、再度インテントフィルタMAINとランチャーを呼び出し

起動アクティビティが表示されます - アクティビティA - しかし、ユーザがアンドロイド戻るボタンを押した後、アクティビティが終了します()、古いアクティビティ - アクティビティB - が表示されます!

アクティビティBをバックグラウンドに移動すると、アクティビティBが一時停止されて停止することがあります。アプリアイコンを押してアプリを再開すると、アクティビティBが再開されます。 (それが殺されて破壊されていない限り、それはされていません)

どうすれば修正できますか?アクティビティBは元々ここ

Intent next = new Intent(ActivityA.this, ActivityB.class); 
startActivity(next); 
finish(); 

を使用して、アクティビティAによって開かれるアクティビティBここ

<activity android:name=".ActivityB" 
    android:screenOrientation="portrait" 
       android:label="@string/app_name" 
       android:configChanges="orientation|keyboardHidden"> 
</activity> 

のマニフェストエントリは、活性A

<activity android:name=".Activity A" 
    android:screenOrientation="portrait" 
       android:label="@string/app_name" 
       android:configChanges="orientation|keyboardHidden"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
</activity> 

なぜこの出来事であるのマニフェストエントリでありますどのように修正するのですか?

答えて

5

あなたの活動を宣言するmanifeastファイルにandroid:launchMode="singleTask"を使用してください。b。その後、活動bはバックグラウンドで表示されません。

関連する問題