Android活动管理

Android活动管理,android,android-activity,back-stack,Android,Android Activity,Back Stack,对于活动管理,我想问一个问题。假设我有4个活动,比如A1,A2,A3,A4。现在A1有一个启动活动A2的按钮。A2有两个按钮可启动A3或A4,A3有两个按钮可启动活动A4和A1。A4有3个按钮用于sart活动A1、A2、A3。我在此活动中不使用“完成”方法。所以现在用户点击任何一个活动按钮,然后检查活动,这已经在后台了吗?如果是,则此活动不会生成新实例并启动已在后台的活动。否则就会产生新的坚持 您可以通过在Intent的标志中包含,然后像往常一样调用startActivity(Intent)来获

对于活动管理,我想问一个问题。假设我有4个活动,比如A1,A2,A3,A4。现在A1有一个启动活动A2的按钮。A2有两个按钮可启动A3或A4,A3有两个按钮可启动活动A4和A1。A4有3个按钮用于sart活动A1、A2、A3。我在此活动中不使用“完成”方法。所以现在用户点击任何一个活动按钮,然后检查活动,这已经在后台了吗?如果是,则此活动不会生成新实例并启动已在后台的活动。否则就会产生新的坚持

您可以通过在
Intent
的标志中包含,然后像往常一样调用
startActivity(Intent)
来获得此行为。

您可以通过在
Intent
的标志中包含,然后调用
startActivity(Intent)来获得此行为
就像平常一样。

你可以通过谷歌搜索“安卓:午餐模式”。 然后您将获得anwser。

您可以通过谷歌搜索“安卓:午餐模式”。
然后您将获得anwser。

每当在任何活动中单击该按钮时,它都会创建该活动的新实例,而不管该活动是否已在活动堆栈中。由于每次都会触发新的意图,因此会打开新的活动。
当我们按下back按钮时,它只会从堆栈中转到已经打开的活动

每当在任何活动中单击该按钮时,它都会创建该活动的新实例,而不管该活动是否已在活动堆栈中。由于每次都会触发新的意图,因此会打开新的活动。 当我们按下back按钮时,它只会从堆栈中转到已经打开的活动

Intent Intent=新Intent()

intent.setFlags(intent.FLAG\u ACTIVITY\u SINGLE\u TOP)

星触觉(意向)

Intent Intent=新Intent()

intent.setFlags(intent.FLAG\u ACTIVITY\u SINGLE\u TOP)


星触觉(意向)

简言之,我只想知道这是已经在后台的活动,如果它是。。简单地说,我只想知道这是已经在后台的活动,如果是。。而不是如何让它摆在前面。在这种情况下,使用
标记活动\u重新排序\u摆在前面
是否更有意义?因为用户可能会返回到当前启动活动顶部的其他活动。@shoerat您是对的,我感到困惑。对我来说这是清晨:-)。您的评论是在我已经解决了这个问题之后出现的。@Barend谢谢您的回答。。目前你的答案是好的。在我实施之后,我会接受它+1…在这种情况下,使用
标记\u活动\u重新排序\u到\u前端
是否更有意义?因为用户可能会返回到当前启动活动顶部的其他活动。@shoerat您是对的,我感到困惑。对我来说这是清晨:-)。您的评论是在我已经解决了这个问题之后出现的。@Barend谢谢您的回答。。目前你的答案是好的。在我实施之后,我会接受它+1…谢谢!!我知道,但是。如果有如此多的活动相互连接,而不是已经在后台创建的活动……谢谢!!我知道,但是。如果有太多的活动相互连接,而不是已经在后台创建。如果在AndroidManifest.xml中设置android:午餐模式=singleTask,则activity堆栈中的活动将是Singleton。启动activity堆栈中已包含的活动时,系统不会创建新实例,而是将其放在堆栈顶部。如果在AndroidManifest.xml中设置android:午餐模式=singleTask,activity堆栈中的活动将是Singleton。当您启动activity堆栈中包含的活动时,系统不会创建新实例,而是将其放在堆栈顶部。