我只是在学习Android编程。我理解它的方式是服务像堆栈一样工作,是否有办法让活动返回到启动应用程序的第一个活动,而不仅仅是前一个活动。
例如,假设我有 4 个活动,a、b、c、d。有没有办法让活动 d 有一个可以调出活动 a 的按钮?而不是活动d去c,c回到b???
我只是在学习Android编程。我理解它的方式是服务像堆栈一样工作,是否有办法让活动返回到启动应用程序的第一个活动,而不仅仅是前一个活动。
例如,假设我有 4 个活动,a、b、c、d。有没有办法让活动 d 有一个可以调出活动 a 的按钮?而不是活动d去c,c回到b???
您可以重新开始活动a,但在您的意图中使用标志:
FLAG_ACTIVITY_REORDER_TO_FRONT
来自安卓文档:
如果在传递给 Context.startActivity() 的 Intent 中设置,则此标志将导致已启动的活动被带到其任务历史堆栈的前面(如果它已经在运行)。
使用它,您将重用已经运行的活动实例,而不是启动一个新实例。请注意,这样做,活动b、c和d的实例将保留在后堆栈中(现在在活动a之后)。
否则,如果您想完成此活动(并将它们从后台堆栈中删除),您可以使用其他标志启动活动a(从d):
FLAG_ACTIVITY_CLEAR_TOP
如果设置,并且正在启动的活动已经在当前任务中运行,那么不会启动该活动的新实例,而是关闭它上面的所有其他活动,并且此 Intent 将被传递到(现在顶部)作为新意图的旧活动。
编辑:如果您还没有阅读,这是一个很好的阅读资源: Tasks 和 Back Stack。
是的,你可以这么做。您只需将活动 a 的意图编码到按钮。
使用命令
finish():
您将返回主页
或者写一个指向
Activities
您可以通过将信息发送到不同的地方Intents
。
Intent myIntent = new Intent(this, AvitivityName.class);
startActivity(myIntent);
不要忘记添加您的Activities
in AndroidManifest.xml
。
这里有一些关于 Android 的教程Intents
: