我有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标志对开关行为没有影响。
答案 0 :(得分:6)
将活动的launchMode
设置为singleInstance
AndroidManifest.xml
希望这有帮助。