繁体   English   中英

在两个Android活动之间来回切换的最佳做法

[英]Best practice for switching back and forth between two android activities

我试图找出在两个Android活动之间切换的最佳做法。 关于SO的几个问题都提到了这一点,但似乎没有一个问题涉及到不同方法的内存或速度。 到目前为止,我遇到了以下方法(为清楚起见,使用活动名称a和b):

  1. 在活动a中,当用户需要转到活动b时,请创建一个指向活动b的新Intent,反之亦然。

2.在活动a中使用startActivityForResult,指向活动b,然后在完成后返回结果。

3.当从活动b返回活动a时,使用指向活动a的新Intent,使用Intent标志ACTIVITY_CLEAR_TOP。

谁能澄清上述方法/他们所知道的任何其他方法对内存和速度的影响,并提出最佳使用方法?

1.在活动a中,当用户需要转到活动b时,创建一个指向活动b的新Intent,反之亦然。

您将创建活动的几个实例,这些实例将被添加到Backstack中。 因此,根据您的应用程序的性质,我建议您不要这样做。 相反,您可以使用片段,并在fragmentmanager的.replace方法之间进行切换,以将片段的两个实例都保留在活动变量中。

2.在活动a中使用startActivityForResult,指向活动b,然后在完成后返回结果。

如果您仅希望活动B执行某项操作并将某些内容发送回活动A,则可以执行此操作,并且每个活动始终有1个实例,这是一个好方法。

3.当从活动b返回活动a时,使用指向活动a的新Intent,使用Intent标志ACTIVITY_CLEAR_TOP。

这对于您的第一个解决方案将是一个很好的解决方案。

如今,处理此问题的最佳方法是使用片段,这是我最常使用的片段。

如果仍然选择使用“活动”,则可以在清单文件中设置以下标记。

android:launchMode=["singleTask" | "singleInstance"]

两者的工作方式相同,每个实例只有一个,并且您不必在意图中设置标志。

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM