一项活动的一切 - Android

时间:2012-02-28 08:53:13

标签: android android-activity views

您怎么看? 我认为创建小应用程序并将所有内容都放在一个Activity上。 只需更改内容视图。摆脱共享数据的问题, 从最近的应用程序开始,还有更多。 我知道以这种方式我可以得到更多的问题,比如stackoverflow。 但有人试过吗?

6 个答案:

答案 0 :(得分:3)

我的朋友和我一起做了第一次申请,他坚持要做到这一点..它是滞后的,不稳定的,它可以被描述为“最糟糕的做法”的例子..

我不同意它运行得更快,我同意你需要做额外的编程,如果你遵循良好的做法(如BACK按下),Android默认会自动处理,我相信它会导致大量内存泄漏,不必要的内存使用和性能下降。总而言之,它并没有给使用它的人留下好印象。

如果你这样做只是为了避免共享数据和其他“问题”,那么最好在这个主题上投入一些时间并尝试更多地了解它们,以正确的方式开始使用它们。当你更了解框架时,你就会明白为什么把所有东西放在一个活动中的想法都很糟糕。

道德我学到了:

  
      
  1. 如果您的应用程序实际上需要更多组件,那么将所有内容放在一个活动中可怕的想法!   块引用

  2.   
  3. 明智地选择您的编程伴侣!

  4.   
  5. 学习学习..

  6.   
祝你好运;)

答案 1 :(得分:2)

是的......这绝对可行。然而,除了最基本的应用程序之外,它是一个非常糟糕的想法。当我第一次出发并构建一个有5个屏幕的应用程序时,我有同样的冲动。它很快变得比它值得多麻烦,而且一个活动有很多代码,这是一场噩梦。

如果你的目标是Honeycomb并且>你应该只使用片段。它更好。

如果您这样做的主要动机是将数据从Activity传递到Activity的复杂性,您应该考虑扩展Application并只存储所有持久数据(我指的是应用程序实际运行时所需的内容,而不是当它在后面的时候。那里。

如果您没有与用户进行任何实质性的交互,并且只想用最少的功能交换XML视图,那么您可以使用一种Activity方法,但对于大多数应用程序来说,它太乱了。

答案 2 :(得分:1)

是的,我的第一批应用程序是使用这种方法制作的。有一些优点,如:

  1. 它通常比从一个活动更改为另一个活动要快一些。
  2. 您只有一个Activity课程。
  3. 和一些缺点:

    1. 如果屏幕太多,您可能会感到困惑。
    2. 您必须自己编写屏幕更改逻辑代码。
    3. 这不被视为Android开发的常规做法。
    4. 无论如何,这种方法有效,所以你决定是否使用它。希望这会有所帮助。

答案 3 :(得分:0)

我建议你使用片段。可以通过一个活动调用这些片段。虽然我确信这个简单的一个活动会做,因为我使用了一个活动类来处理片段,但我也使用了更多的活动类。

对于前。您可以创建不同的片段并在活动中调用它们,如:---

 public void onStatusClick(View view)
    {
        setFragment(new HomeFragment());
    }

    public void onNotificationsClick(View view)
    {
        setFragment(new NotificationsFragment());
    }


    public void onContactClick(View view)
    {
        setFragment(new ContactFragment());
    }

    public void setFragment(Fragment fragment)
    {
        FrameLayout framelayout = (FrameLayout) findViewById(R.id.frme_container);

        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.replace(framelayout.getId(), fragment).commit();

    }   

答案 4 :(得分:0)

如果它是你在交接后可以放弃的那种项目,那么你就可以使用一个类

但是,如果您的客户是长期的,并且将要求将来的更改和/或扩展,那么最好不要将所有内容转储到一个类中。变化很难预料,如果一切都在一个活动中,你可能会发现自己会重构一切。

答案 5 :(得分:0)

我同意使用活动和碎片的所有积极因素。我的纸牌游戏应用程序最初是用1个活动和7个视图编写的。最终我重构了应用程序以使用7个活动。应用程序的启动时间显着下降。但是,当使用7个视图时,应用程序从未出现内存问题,并且一旦加载,屏幕之间就会快速闪烁。

所以我的结论是,使用观点与活动(或片段)比其他答案所呈现的灌篮更为折衷。初始加载视图需要更长时间,但交换速度非常快。活动是模块化的,仅在需要时加载。使用“活动”时内存较少,加载时间更快,但折衷的是代码更复杂,屏幕之间的转换速度更慢。

最后,您不必使用全有或全无的方法。您可以随时将两种解决方案混合到您的应用程序中,这是我最终解决的问题。我对不经常使用的屏幕使用Activities,对于经常使用的主要2屏幕使用Views / ViewSwitcher。它是两全其美的。