newInstance的Backstack

时间:2013-03-08 09:04:30

标签: android

我有3个活动:A(启动器),B和C.我已将A的launchMode(在清单中)指定为singleInstance。 A有一个按钮可以转到B,B有一个按钮来启动C,C有一个按钮来启动A - 全部使用默认的“标准”调用模式。

我采取以下步骤:

  • 启动应用 - > A - >启动B - > B - >启动C - > C - >启动A - > A - > 启动B - > ç

这会把我带到C(而不是B)!我不明白为什么。

另一系列步骤:

  • 启动应用 - > A - >启动B - > B - >启动C - > C - >启动A - > A - > 启动B - > C - >启动A - > A - >启动B - > C - >返回 - > B - >返回 - > A - >返回 - >退出

堆叠的其余部分去了哪里?为什么在前进中没有遇到B时,B进入后筹码(最后一步)。

另一个疑问是,通过newInstance,我认为将为A创建一个新的任务两次 - 我应该能够在最近的任务中看到它 - 但我不能。我如何“看到”任务?

编辑:添加相关代码(为了简洁起见,仅添加相关代码):

**Manifest**
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.backstack.B"
        android:label="@string/title_activity_b" >
    </activity>
    <activity
        android:name="com.example.backstack.A"
        android:label="@string/title_activity_"
        android:launchMode="singleInstance" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.example.backstack.C"
        android:label="@string/title_activity_c" >
    </activity>

A.java - launchB在布局xml中设置为onClick成员

public void launchB(View v){
    Intent i= new Intent(this, B.class);
    startActivity(i);
}

B.java

public void launchC(View v){
    Intent i= new Intent(this, C.class);
    startActivity(i);
}

C.java

public void launchA(View v){
    Intent i= new Intent(this, A.class);
    startActivity(i);
}

0 个答案:

没有答案