您怎么看? 我认为创建小应用程序并将所有内容都放在一个Activity上。 只需更改内容视图。摆脱共享数据的问题, 从最近的应用程序开始,还有更多。 我知道以这种方式我可以得到更多的问题,比如stackoverflow。 但有人试过吗?
答案 0 :(得分:3)
我的朋友和我一起做了第一次申请,他坚持要做到这一点..它是滞后的,不稳定的,它可以被描述为“最糟糕的做法”的例子..
我不同意它运行得更快,我同意你需要做额外的编程,如果你遵循良好的做法(如BACK按下),Android默认会自动处理,我相信它会导致大量内存泄漏,不必要的内存使用和性能下降。总而言之,它并没有给使用它的人留下好印象。
如果你这样做只是为了避免共享数据和其他“问题”,那么最好在这个主题上投入一些时间并尝试更多地了解它们,以正确的方式开始使用它们。当你更了解框架时,你就会明白为什么把所有东西放在一个活动中的想法都很糟糕。
道德我学到了:祝你好运;)
如果您的应用程序实际上需要更多组件,那么将所有内容放在一个活动中可怕的想法! 块引用
明智地选择您的编程伴侣!
- 醇>
学习学习..
答案 1 :(得分:2)
是的......这绝对可行。然而,除了最基本的应用程序之外,它是一个非常糟糕的想法。当我第一次出发并构建一个有5个屏幕的应用程序时,我有同样的冲动。它很快变得比它值得多麻烦,而且一个活动有很多代码,这是一场噩梦。
如果你的目标是Honeycomb并且>你应该只使用片段。它更好。
如果您这样做的主要动机是将数据从Activity传递到Activity的复杂性,您应该考虑扩展Application并只存储所有持久数据(我指的是应用程序实际运行时所需的内容,而不是当它在后面的时候。那里。
如果您没有与用户进行任何实质性的交互,并且只想用最少的功能交换XML视图,那么您可以使用一种Activity方法,但对于大多数应用程序来说,它太乱了。
答案 2 :(得分:1)
是的,我的第一批应用程序是使用这种方法制作的。有一些优点,如:
Activity
课程。和一些缺点:
无论如何,这种方法有效,所以你决定是否使用它。希望这会有所帮助。
答案 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。它是两全其美的。