当前位置: 首页 > 知识库问答 >
问题:

片段和片段活动天生就比活动快吗?

傅玮
2023-03-14

我这么问的原因是因为我多年来一直在专门使用活动,Facebook SDK和Google Maps 2.0迫使我使用片段,现在我想知道与其他实现相比,它们是否本质上“更好”。

如果这个“不具建设性”或“过于开放”,那么答案显然是“不”。但是如果有一些谷歌开发者的文档或博客关于这个确切的主题,那么我想知道它

共有1个答案

贲绪
2023-03-14

我在上一次申请中成了碎片的信徒。无论它们在计算上是否更快,它们都感觉更快,因为您基本上可以立即交换它们,如果您做得好,包括对后堆栈的完全支持(在事务上调用addToBackStack()或非常类似的东西)。

我现在使用Fragment/Fragment活动进行所有我想感觉非常快的导航,就像点击一行来获得更多细节一样。只有当我想做一件根本不同的事情,并且有一个干净的工作记录时,我才会启动新的活动。例如,我通常有一个专门处理登录/注册的LoginActivity,至少还有一个是应用程序的核心。

但碎片的根本好处仍然是它们的灵活性。我可以在其他碎片上显示碎片,在不同的屏幕大小上重新排列它们,等等。但还有其他好处。只是需要一段时间来感觉自然(就像最初的活动一样)。

 类似资料:
  • 我在处理活动和碎片时遇到了一些麻烦。我正处于应用程序开发的早期阶段,最终希望设计一种最有效的方法来整合两个独立的屏幕。 每种方法的好处是什么?你会选择哪种设计?

  • 有什么理由不不分青红皂白地这样做而不重新评估我使用片段的每个单独的情况吗?

  • 在Android中,当我们用一个新的片段替换容器视图时,我们可以使用replace()和addToBackStack(),因此按下back按钮就可以转到上一个片段。 但如果出现以下情况怎么办: 在Activity1中,我可以按下back按钮从fragment2转到fragment1。但当fragment2启动另一个活动时,从Activity2按下back按钮,它会将我带到Activity1中的fr

  • 我有一个由一个活动和几个片段组成的应用程序,由谷歌重新指挥。其他细节在这里。我想保持一个菜单静止和切换我的碎片在容器在中心。 当我启动该活动时,它会初始化一个变量,如代码所示。 但是,当我在fragment onCreate中使用这个变量()时,活动中的绑定行会因,如下面的logcat所示 下面是完整的logcat,我们可以看到第二个sout丢失了,但在这一点上没有抛出错误。

  • 亲活性 这意味着,onActivityResult()将在作为该子片段的父片段的片段内部调用refresh。作为连锁反应,refreshDeliveryFragment()将调用这两个子片段中的一个子片段来刷新它们的recyclerview数据。

  • 在我的调试中,我注意到在片段上首先调用onpause/onstart/onstop/ondestroy,然后在它的活动上调用onResume,而onResume则相反--活动的onResume在它的片段之前首先调用。 为什么活动和片段之间的onpause/onstart/onstop与onResume的顺序不同?