我有3项活动: MainActivity,MovieActivity和ActorActivity。
我是Android新手,我试图了解如何通过确保不启动n个活动并耗尽内存来实现每个活动之间的转换。
以下是用户可能会遇到的情况:
MainActivity(列出电影)---> MovieActivity开始点击电影并显示演员--->如果你点击一个演员,ActorActivity就会开始。
现在,在演员活动中,我会显示演员所在的电影列表,因此用户可能会回到他来到当前演员活动的同一部电影。这可以永远地来回继续或基本上在电影和演员活动之间切换。
我已将MovieActivity和ActorActivity的父活动设置为MainActivity,因此任何时候点击顶部的UP按钮都会列出所有电影。
处理此方案的最佳方法是什么?当用户点击按钮时,如果后面的跟踪是MovieA< - >,我不确定理想的行为应该是什么。演员A来回说过10次。
答案 0 :(得分:0)
您可以在后退按钮上使用以下代码。
@Override
public void onBackPressed() {
Intent i = new Intent(currentactivity, targaetactivity);
startActivity(i);
}
答案 1 :(得分:0)
您可以手动存储历史记录并找到有意义的等待返回,例如回到上一个屏幕,除非你有MovieA / ActorA / MovieB / ActorB的循环。然后手动实现onBackPressed方法。 这样,当您切换到另一个时,您总是会完成您的活动,而您只需将活动参数存储在堆栈中。
答案 2 :(得分:0)
您可以在转换到新的详细信息页面时跟踪之前的详细信息,并将其作为额外内容传递给新活动(例如:从Actor发送 - >电影时,您应该传递Actor的名称意图额外)。然后,如果用户想要从“电影”页面转换到“演员”页面,您可以将其进行比较,以查看它是否与前一个相同的Actor(在额外中传递的那个)。如果是这样,您只需调用finish()
,而不是启动新的活动,这会将用户返回到之前的Actor详细信息页面。
通过这种方式,您将防止无意义循环(A-> B-> A-> B)位仍然允许用户从A-> B-> D-> E-> ; T-> Q,如果他想。