2012-02-20 9 views
4

私のアプリケーションでは、私が理解していない動作があります。私はMainActivity AをSingleTaskとしています。 Activity B(SingleTask)も呼び出します。 2番目のアクティビティでHomeボタンを押して別のアプリケーションを開き、その後にアプリケーションに移動しようとしましたHomeボタンが押されたときはいつもメインActivityに行き、2番目のアクティビティを開いて、私がHomeボタンを押したとき。Android SingleTask、SingleTop、Home Button

私は2番目のアクティビティをsingleTopに設定しようとしましたが、動作しません。

助けが必要ですか?

+0

あなたのsecondActivityにsingleTopを使用すると、singleTaskと同じ動作を反映しますが、同じスタック内にあります。 –

答えて

4
同時にsingleTaskでの主な活動を定義するときにバックアクティビティスタックの挙動が変な辞めてしまう

は、この特殊な使用に係る公式のdevのガイドには明確な説明がなくても悪いことは何である
<activity android:name=".MainActivity" 
    android:launchMode="singleTask"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

場合。このトピックに関連するいくつかのセクションは自己矛盾しています。

MainActivity AにはlaunchMode = "standard"を使用し、Activity BにはlaunchMode="singleTask"を使用してください。これにより、あなたが説明した予想動作が得られます。

+0

これはちょうど私に起こり、あなたの説明がわかりました。私にとっては、「呼び出し側タスク」と宛先タスクの両方に、singleTaskまたはsingleInstance以外のものを持たせる必要がありました。私がそれをしたら、それは働いた。これはdevのドキュメントで説明されていますが、コンピュータサイエンス専攻 –