Android系统。在两个活动之间切换,无需重新创建和完成

时间:2016-01-14 07:50:27

标签: android android-intent

我有2项活动" A"和" B"。 我需要在它们之间切换而不需要完成和重新创建。

运行应用 - >创建并显示A - >按下按钮 - >创建并显示B - >按下按钮 - > show已经存在A - >按下按钮 - > show已经存在B - >等等。

当前解决方案:

private void toA() {
    Intent intentToA = new Intent(this, A.class);
    intentToA.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intentToA);
}

private void toB() {
    Intent intentToB = new Intent(this, B.class);
    intentToB.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intentToB);
}

适用于VM(native,Genymotion - android 4.1)。活动只会创建一次。当我在它们之间切换时,每一个都没关系 - 没有onCreate或onDestroy的调用。这正是我想要的。

但是当我在真实设备上运行相同的应用程序(Nexus 4 - android 4.3)时,活动会在切换时被破坏并重新创建。

VM上的

Run app -> 
A: onCreate, onResume -> 
press button -> 
B: onCreate, onResume -> 
press button -> 
A: onResume - > 
press button -> 
B: onResume -> 
...
真实设备上的

Run app -> 
A: onCreate, onResume -> 
press button -> 
B: onCreate, onResume & A: onDestroy ->
press buttom ->
A: onCreate, onResume & B: onDestory ->
...

注意: Intent标志对开关行为没有影响。

1 个答案:

答案 0 :(得分:6)

将活动的launchMode设置为singleInstance

中的AndroidManifest.xml

希望这有帮助。