1

脚步:

  1. 用户从 Android Market 应用程序启动应用程序
  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

您需要阅读以下内容的android:launchModeandroid:clearTaskOnLaunch属性:http <activity>: //developer.android.com/guide/topics/manifest/activity-element.html#lmode

于 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 回答