1

我的应用中有五个活动,Act1->Act2->Act3->Act4->Act5,

如上所述,所有活动都是单向进行的,现在我必须在成功完成我的 Act5 的任务后再次调用 Act2,所以它工作良好并向我展示 Act2(我startActivity(callIntent)在 Act5 中使用过再次向我展示 Act2),之后这当我点击 Act2 中的后退按钮时,我有 Act1(我startActivity(callIntent)在 Act2 中使用过再次向我展示 Act1)这是我想要的.....但问题是当我点击 Act1 的后退按钮时,它会放我在第二幕。但我想从那里退出,因为 Act1 是第一个初始活动。

如何将焦点设置到我的隐藏活动,而不是创建 Intent 并调用 startActivity。

任何想法?请帮忙。

4

2 回答 2

0

而不是以下代码(带有标志Intent.FLAG_ACTIVITY_NEW_TASK):

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
callIntent.setClass(CurrentActivity.this,PreviousActivity.class);
startActivity(callIntent);

尝试使用以下一个Intent.FLAG_ACTIVITY_CLEAR_TOP

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
callIntent.setClass(CurrentActivity.this,PreviousActivity.class);
startActivity(callIntent);
于 2013-01-16T11:00:03.337 回答
0

经过长时间的研究,我对应用程序中所有活动的“回栈”有了相当多的了解。

每次我移动到另一个活动并打开以前使用过的活动Intent.startActivity()flag FLAG_ACTIVITY_NEW_TASK,所以每次我在“后台堆栈”中添加新活动时。

我已经尝试过使用意图标志,因为FLAG_ACTIVITY_CLEAR_TOP从“后台堆栈”调用先前的活动时Intent.startActivity(),我得到了回调先前活动的解决方案并清除调用一个活动上方的所有堆栈顶部活动。所以现在后退按钮可以根据我的需要正常工作。

让我们看看我调用上一个活动的问题 A = activity; A1->A2->A3->A4->A5->B2,现在如果你点击后退按钮,你将拥有 A1 活动,在点击 A1 的后退按钮后,你再次拥有在 A5 之后调用的 B2 活动,依此类推。

在使用FLAG_ACTIVITY_CLEAR_TOPA5 活动并再次调用 A2 后(不创建新活动但调用珍贵的活动)我有以下情况。

A = activity; A1->A2->A3->A4->A5

调用以前的 A2 活动,我有以下情况。 A1->A2只要。

谢谢。

于 2013-01-16T10:49:11.777 回答