具体来说,活动方面的约定是什么?如果我正在构建一个包含多个屏幕的程序,我是否为每个屏幕创建一个活动?
如果我想在活动之间正确导航,我是否会在每项活动中坚持使用意图?我想让这段代码尽可能干净有效
答案 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从已启动的活动中接收数据。