Android 在 BackPress 上仅使用 finish() 达到前 3 个 activity
Android on BackPress reach 3rd previous activity using finish() only
Activity的流量运行
A->B->C->D
- 从 D onBackPressed() 到达 A
- 从 C onBackPressed() 到 B
我不想只使用 finish 来调用 startActivity(new Intent(context, A.class));
。
通过
覆盖 activity D 的 onbackpressed()
Intent intent = new Intent(getApplicationContext(),ActivityA.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
然后从 activity C 你可以使用 finish() 来 Activity B;
是棘手的,但你可以处理后按转到 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);
正确的做法是覆盖 D
中的 onBackPressed()
,然后像这样返回 A
:
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
请说明您不想使用此方法的原因?
感谢您的回复,但我最近用这种方法解决了问题。
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
finish();
Activity的流量运行
A->B->C->D
- 从 D onBackPressed() 到达 A
- 从 C onBackPressed() 到 B
我不想只使用 finish 来调用 startActivity(new Intent(context, A.class));
。
通过
覆盖 activity D 的 onbackpressed()Intent intent = new Intent(getApplicationContext(),ActivityA.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
然后从 activity C 你可以使用 finish() 来 Activity B;
是棘手的,但你可以处理后按转到 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);
正确的做法是覆盖 D
中的 onBackPressed()
,然后像这样返回 A
:
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
请说明您不想使用此方法的原因?
感谢您的回复,但我最近用这种方法解决了问题。
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
finish();