1

手順:

  1. ユーザーが Android マーケット アプリケーションからアプリを起動する
  2. ユーザーが「子を開始」をクリックする

    スタック: ActivityMain > ActivityChild

  3. ユーザーがホームボタンを押して、「起動アイコン」からアプリに戻る

  4. Android が「最後のタスク」を開く + 次の ActivityMain を作成する

    スタック: ActivityMain > ActivityChild > ActivityMain

「起動アイコン」をクリックすると、[実際に新しいアクティビティを作成せずに] 前のスタックに戻るだけだと思います。
私はスタックを期待しています:

ActivityMain > ActivityChild

それを達成する方法???

一方、上記の最初のステップでユーザーが「起動アイコン」からアプリを起動した場合、問題は存在しません。

マニフェスト:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:label="ActivityMain"
        android:name=".ActivityMain" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="ActivityChild"
        android:name=".ActivityChild" >
    </activity>
</application>

手伝ってくれてありがとう!

4

2 に答える 2

0

http://developer.android.com/guide/topics/manifest/activity-element.html#lmodeandroid:launchModeの属性とandroid:clearTaskOnLaunch属性を確認してください<activity>

于 2012-05-01T09:35:11.883 に答える
0

解決:

次のことを担当する「ランチャー アクティビティ」を導入します。 -
新しいタスクの開始、
または前のタスクの復元。

ランチャーは「singleInstance」として起動されます。

public class ActLauncher extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent i = new Intent(this, ActivityChild1.class);
        startActivity(i);
        finish();
    }
}

たとえば、アクティビティがあるとします。

ActLauncher [mode=singleInstance]  
ActChild1 [mode=standard]  
ActChild2 [mode=standard]

ある時点で、ユーザーがシーケンスを実行しました:

AndroidMarket > ActLauncher > ActChild1 > ActChild2

次にHOME
、アプリに戻りますが、ランチャーアイコン「ActLauncher」を使用します。
これにより、ユーザーは以前の完全なバックスタックに移動します。

ActChild1 > ActChild2

このアプリでソリューションを適用しました
そこ:
- ActLauncher = "invisible"
- ActChild1 = メイン画面
- ActChild2 = ゲーム画面

幸運をお祈りしています!

于 2012-05-10T20:29:16.600 に答える