我如何正确地构建Android应用程序?

时间:2011-10-02 06:56:21

标签: android conventions

具体来说,活动方面的约定是什么?如果我正在构建一个包含多个屏幕的程序,我是否为每个屏幕创建一个活动?

如果我想在活动之间正确导航,我是否会在每项活动中坚持使用意图?我想让这段代码尽可能干净有效

2 个答案:

答案 0 :(得分:3)

简而言之:是的。

虽然您可以通过在单个Activity中动态更改UI来解决此问题,但是android建议每个应用程序的“活动”应该在单独的Activity类中编码。

在Android推荐的方式上查看此quite good article

此Intent / Activity设计模式有许多优点,其中之一就是您可以覆盖  并使用您自己的匹配意图过滤器扩展其他应用程序活动。

我看到你关注效率。请确保在Android中高度优化了Activity切换开销(例如,Dalvik实例始终是预先分配的,准备好在没有上下文切换开销的情况下处理新活动)。

答案 1 :(得分:1)

简短的回答:这实际上取决于你想要如何布置你的应用程序。

例如,如果您想要标签,可以使用tabhost,它可以轻松地在您的活动之间切换。

如果您想自己启动活动,可以使用意图启动活动(如您在问题中所述)。一个例子是从Button或ListView启动意图。对于ListView(带有OnItemClickListener),您可能会有类似的内容:

(your ListView).setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> av, View v, int index,
    long arg3) {
        Intent intent = new Intent(TheActivityYou'reLaunchingFrom.this, OtherActivityYouWishToLaunch.class);
        startActivity(intent);
    }
}

我提供的链接有很好的例子。当您希望结束从另一个活动启动的活动时,您可以调用finish(),该活动应该从其他事件调用(例如单击按钮)。

另请注意,您可以启动活动,希望通过使用捆绑包的startActivityForResult从已启动的活动中接收数据。