You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jetpack Compose与Navigation Compose是否无需为每个屏幕新建Activity?

关于Jetpack Compose下单Activity架构的疑问解答

你的理解完全正确——绝大多数现代Android应用(尤其是基于Jetpack Compose开发的)确实只需要一个Activity,页面间的切换完全可以通过Navigation Compose来实现,没必要再为每个屏幕新建Activity。

为什么现在更推荐单Activity架构?

  • 传统View体系中,Activity是系统级页面容器,每次创建新Activity都会产生额外的系统开销(比如生命周期初始化、进程资源分配),而且跨页面传参、状态共享的成本较高。
  • Navigation Compose依托Compose的可组合函数特性,将每个屏幕封装成独立的@Composable函数,通过导航组件管理页面栈。页面切换本质是Composable的重组,开销远低于Activity启动,同时状态管理、页面间通信也更灵活。

哪些特殊场景仍需要多Activity?

  • 涉及系统级特性的需求:比如需要让某个页面在独立进程运行(如支付页、后台服务页),或者依赖singleTask/singleInstance等特殊启动模式来满足业务逻辑;
  • 大型旧项目迁移:如果是从传统View体系逐步迁移到Compose,可能会保留部分原有Activity作为过渡;
  • 第三方唤起需求:如果应用某个页面需要被其他应用直接唤起,且该页面独立性极强,用单独Activity实现会更便捷。

内容的提问来源于stack exchange,提问作者CalmPerson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:48:10