BackPress上的Android仅使用finish()达到之前的第3个活动

时间:2017-02-10 10:39:45

标签: android android-activity onbackpressed

活动的运行流程

A-> B-> C-> d

    来自D onBackPressed()的
  • 到达A
  • 来自C onBackPressed()到达B

enter image description here

我不想仅使用完成来调用startActivity(new Intent(context, A.class));

4 个答案:

答案 0 :(得分:1)

很棘手,但你可以按下后退去d到c用一些意图数据检查这个意图数据是你从d发送的匹配如果真的回叫按小说野兔使用相同的概念直到你将通过d> c> b> a直接这不会显示c或d它会快速工作,否则在背压时使用简单的代码。

    Intent intents = new Intent(getActivity(),ActivityA.class);
   intents.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 startActivity(intents);

答案 1 :(得分:0)

覆盖活动D的onbackpressed(),

Intent intent = new Intent(getApplicationContext(),ActivityA.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

从活动C中你可以使用finish()来参加活动B;

答案 2 :(得分:0)

执行此操作的正确方法是覆盖onBackPressed()中的D,然后将cgo返回A,如下所示:

Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

请解释为什么你不想使用这种方法?

答案 3 :(得分:0)

感谢您的回复,但我最近以这种方式解决了问题。

Intent intent = new Intent(this, A.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);
    finish();