如图所示,流程就是这样的。因此,每当用户点击徽标按钮时,应调用活动A.作为简单的解决方案,我们可以使用这种方法...
Intent intent = new Intent(activity, activityToStart);
startActivity(intent);
但是此活动会为我的应用创建一个新活动。但是我需要在流程图中向前推进调用相同的活动实例。从活动A到B然后再次在B上可以通过调用finish()
轻松调用,但是从活动C或D调用,如何回到A.
我的想法已经用完,但没有取得任何丰硕的成果。如果您有任何建议或在任何地方我出错,请帮助我。提前谢谢。
答案 0 :(得分:15)
从D回到A,使用Intent Flags。
Intent intent = new Intent(activity, activityToStart);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent);
FLAG_ACTIVITY_CLEAR_TOP将代替创建新活动,它将调用堆栈上的活动,并将弹出所调用活动的所有活动。
答案 1 :(得分:0)
通过将活动A设为“SingleTask”,您可以实现此目的。当一个Activity在SingleTask中单击Home按钮时,其他活动将从堆栈中删除。
有关Android Activites的更多信息,请参阅这些链接...
答案 2 :(得分:0)
使用ViewFlipper在同一活动中的不同窗口之间往返。
ViewFlipper vf = (ViewFlipper) findViewById( R.id.view_flipper);
转到下一个窗口
vf.showNext();
转到上一个窗口
vf.showPrevious();
答案 3 :(得分:0)
而不是使用
Intent intent = new Intent(activity, activityToStart);
startActivity(intent);
使用
Intent intent = new Intent(activity, activityToStart);
startActivityforResult(intent,1234);
这将确保活动A未被杀死,当您完成活动C时,活动A将恢复。
注意: - 每当您创建新活动而未完成(退出)主机活动时,主机活动将以LIFO顺序保存在堆栈上
LIFO : - Last In First Out
答案 4 :(得分:0)
我不确定,这是对的,但你可以尝试一下!
当您从Activity-B开始打开新活动时,您可以完成()当前活动。
即
打开Activity-C =>完成Activity-B并启动Activity-C
打开Activity-D =>完成Activity-C并启动Activity-D
现在当您按下时,活动A将会打开。