多个活动或单个活动和多个片段

Har*_*edi 9 android android-fragments android-activity

我有一个非常普遍的问题,我没有找到我的问题的具体答案,因此再次提出.

我想在两种方法之间做出决定

  1. 针对各种屏幕和任务的专用活动,以避免复杂性和问题
  2. 用于不同任务的单个活动和多个片段以及用户可以像活动保持片段一样导航用户将导航到片段B,片段C,这可以来回交易.

我想知道什么?

  1. 活动转换是否对处理器来说代价高昂或实现简单的内存开销可以忽略不计?
  2. 片段有过渡管理生命周期的开销,那么生命循环器管理会带来什么问题呢?
  3. 处理片段事务与保存片段状态有多容易?

我们现在还不知道有多少数据存在片段.

小智 9

嗯,这完全取决于应用程序的设计,流程和导航.

以下是使用单个活动和多个碎片的一些好处:

  1. 性能片段事务比创建新活动快.
  2. 导航抽屉和工具栏,使用单个活动可以轻松管理.
  3. 可以在任何地方使用相同的Context.
  4. Fragment的setRetainInstance在管理方向更改时非常有用.

有了它,这里有一些缺点:

  1. 使用大量代码时,Activity变得非常混乱.
  2. 处理按钮背压是繁琐的,因为只有Activity可以处理而不是片段.

我个人使用具有多个片段的多个活动,其中我基于模块分离活动.在同一模块中,可以分段创建子模块.我发现在不同的场景中管理很容易,就像应用程序关闭,重新打开,通知,方向更改一样.


She*_*har 5

我的问题是一样的,到目前为止,在我的所有应用程序中,只有一个活动,其余的都是片段。我同意维护 Fragment 很困难,但是使用 Fragment 会提高你的性能。

假设,举一个例子,

我有 10 个活动,在每个活动中,我调用异步任务来执行一些后台操作。在每个异步任务的 onPostExecute() 中,您正在更新您的 UI。但是在完成 doInBackground() 之前,您切换了 Activity 并且该 Activity 被销毁,但请记住 doInBackground() 仍在进行中,一旦完成,将调用 onPostExecute,并且在 onPostExecute() 中我们正在更新 UI,但是 Activity 被破坏了,所以这会在您的应用程序中造成泄漏。但如果您只维护一项 Activity,那么维护起来会很容易。

也在等待其他人的意见。