我有4项活动A,B,C和D.
过渡是A - >; B - > C-> D.现在在活动D中,我打开了一个对话框片段,其中包含" Ok"按钮。当我点击" Ok"按钮我想回到行动B.直到这里我没有任何问题。但是在活动B中,当我点击后退按钮时,我想回到活动A,而是重定向到活动D.我怎样才能实现这个目标?
P.S。我目前正在开发Xamarin Android,但我确信该解决方案对两者都有效。
答案 0 :(得分:2)
您似乎需要使用ClearTop活动标志导航回活动B.
有关更多信息:
https://developer.android.com/reference/android/content/Intent.html
并使用它:
yourIntet.AddFlags(ActivityFlags.ClearTop);
答案 1 :(得分:1)
StartActivityForResult
启动活动D,按下OK按钮,用户setResult
设置一些指标,让您直接返回活动B. onActivityResult()
,finish
活动C中,如果您在活动D中设置的标记表示它想直接转到活动B. 它将完成活动C,你将直接进入活动B.
这是一个很好的解释它如何运作https://developer.android.com/training/basics/intents/result.html
答案 2 :(得分:0)
:
@Override
public void onBackPressed() {
Intent intent = new Intent(this, AActivity.class);
startActivity(intent);
}
您可以找到Xamarin格式here
答案 3 :(得分:0)
在android中:
@Override
public void onBackPressed() {
Intent intent = new Intent(this, YourActivity.class);
startActivity(intent);
}
xamarin中的:
public override void OnBackPressed()
{
var intent = new Intent(this, typeof(ActivityYouWhantToGetBackTo));
intent.SetFlags(ActivityFlags.ClearTop);
StartActivity(intent);
}
答案 4 :(得分:0)
设置活动B启动模式" singleTask"在清单文件中,如
android:launchMode="singleTask"
在调用D到B活动后,你的C和D活动将会破坏。 您的新意图数据通过此方法路由
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
}
有关详细信息,请参阅this link info
答案 5 :(得分:0)
您可以使用finish()方法和onBackPressed()完成上一个活动,只需重定向您想要的上一个活动。 举些例子: A - >乙 - > C - > d
使用Intent.Like调用C类的onbackPressed在所有类中使用相同的东西。