Android:在活动之间跳过活动

时间:2018-01-04 08:40:30

标签: android android-activity xamarin.android

我有4项活动A,B,C和D.

过渡是A - >; B - > C-> D.现在在活动D中,我打开了一个对话框片段,其中包含" Ok"按钮。当我点击" Ok"按钮我想回到行动B.直到这里我没有任何问题。但是在活动B中,当我点击后退按钮时,我想回到活动A,而是重定向到活动D.我怎样才能实现这个目标?

P.S。我目前正在开发Xamarin Android,但我确信该解决方案对两者都有效。

6 个答案:

答案 0 :(得分:2)

您似乎需要使用ClearTop活动标志导航回活动B.

有关更多信息:

https://developer.android.com/reference/android/content/Intent.html

并使用它:

yourIntet.AddFlags(ActivityFlags.ClearTop);

答案 1 :(得分:1)

  • 使用StartActivityForResult启动活动D,按下OK按钮,用户setResult设置一些指标,让您直接返回活动B.
  • 在活动C onActivityResult()finish活动C中,如果您在活动D中设置的标记表示它想直接转到活动B.

它将完成活动C,你将直接进入活动B.

这是一个很好的解释它如何运作https://developer.android.com/training/basics/intents/result.html

答案 2 :(得分:0)

活动B中的

@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在所有类中使用相同的东西。