我有 2 项活动
1.活动
1
2. 活动2
活动 1正在运行。在来自activity1的事件中,我想切换到activtiy2
条件是
1.创建新活动并在活动2不活动时运行。
2.Resume activity2如果它还活着
在这两种情况下,它都不应该关闭活动1
如何达到这个要求。
我有 2 项活动
1.活动
1
2. 活动2
活动 1正在运行。在来自activity1的事件中,我想切换到activtiy2
条件是
1.创建新活动并在活动2不活动时运行。
2.Resume activity2如果它还活着
在这两种情况下,它都不应该关闭活动1
如何达到这个要求。
您可以在 Activity2 onCreate 中编写为:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null){
//If activity is not loaded first time
}
else
{
//activity is loaded first time
}
}
Intent i = new Intent(activity1.this, activity2.class);
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
除非您明确调用它,否则您无法控制在这种情况下 activity1 是否被杀死.finish()
。如果你不这样做 - 它不会被销毁,直到你按下后退按钮,调用.finish()
或内存管理器决定它需要后台活动占用的内存。
为避免重新创建activity2,您应该在清单中使用launchMode,阅读它——您可能正在寻找singleInstance
,singleTask
或者singleTop
,请参阅链接以了解差异。