我有很多活动.
A is list activity.
B is form activity. And generated dynamically. I open this activity two time in a row.
C is result activity.
A – > B – > B喜欢简单推新活动.
如果结果成功,我想在我推C时清除所有表格.
A – > B – > B – > C ==> A – > C.
如果Im in C活动时结果失败,则可以返回上述不同的活动.
A – > B或A – > B – >乙
当我按C时我使用cleartop但它清除所有活动如何保存活动的状态.
如何管理碎片等活动.
*当我从第二个B回来时,第一个B应该打开*
解决方法:
您可以按照以下步骤实现:
>在AndroidManifest.xml文件中设置ActivityA的android:launchMode =“singleTask”.
>在ActivityA中设置onNewIntent方法,如下所示:
@覆盖
protected void onNewIntent(Intent intent){
super.onNewIntent(意向);
捆绑mBundle = intent.getExtras();
如果(mBundle!= NULL){
String launchActivity = mBundle.getString(“activityName”);
switch(launchActivity){
case“ActivityD”://这是活动名称这里是ActivityD.class
startActivity(new Intent(ActivityA.this,ActivityD.class));
打破;
}
}
}
>现在从ActivityC启动ActivityA,如下所示.
startActivity(new Intent(ActivityC.this,ActivityA.class).putExtra(“activityName”,ActivityD.class.getSimpleName()));
它将调用ActivityA的onNewIntent方法并匹配参数并从ActivityA启动ActivityD.因此,您的ActivityA将保留在堆栈中,ActivityD将在堆栈中添加到Top.
>现在实现A – > B来自A – > D从ActivityD启动ActivityB时,可以在ActivityD中调用finish()方法.
关于ActivityLaunchMode,请参阅this link
希望它对你有用!