恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Fragment 还是 Activity?Android Studio MVP 模板中两种页面的生成差异与选型建议

  • 首页
  • 资讯中心
  • /
  • Fragment 还是 Activity?Android Studio MVP 模板中两种页面的生成差异与选型建议

相关资讯

C++ weak_ptr详解:打破循环引用,实现安全对象观察与缓存 2026/8/25 8:14:23
Python爬虫进阶:基于CDP协议高效抓取动态网页数据 2026/8/25 8:09:23
误差状态卡尔曼滤波(ESKF)在IMU与GNSS融合中的原理与实现 2026/8/25 8:09:23

最新资讯

340字节装下完整FORTH:史上最小真实编程语言milliForth全景概览
OCBarrage弹幕样式配置清单:字体、颜色、描边、圆角、速度属性全解
图像增强底层逻辑:Gamma校正、CLAHE与Retinex的工程化选型指南
LunaTranslator 游戏翻译工具完整上手:零基础 30 分钟跑通 Galgame 日文实时翻译
为什么你需要自建DoH代理?doh-cf-workers破解运营商DNS封锁的隐私防御全攻略
从行为痕迹到能力进化:WSaiOS-ICAI经验系统的认知架构与工程实现

今日推荐

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南
洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Fragment 还是 Activity?Android Studio MVP 模板中两种页面的生成差异与选型建议

发布时间:2026/8/25 8:14:23
Fragment 还是 Activity?Android Studio MVP 模板中两种页面的生成差异与选型建议 Fragment 还是 ActivityAndroid Studio MVP 模板中两种页面的生成差异与选型建议【免费下载链接】Android-Studio-MVP-templateAndroid MVP template for Android Studio项目地址: https://gitcode.com/gh_mirrors/an/Android-Studio-MVP-template在 Android 开发中Fragment 还是 Activity是很多新手的项目第一课。Android Studio MVP 模板Android-Studio-MVP-template用一套现成的代码生成器把这个问题变成了点一下菜单的事在File New MVP下选择MVP Activity或MVP Fragment即可分别生成一个完整的 Activity 页面或一个可嵌入的 Fragment 页面并自动配好 View 接口、Presenter、Interactor 和 Dagger 2 注入的整套 MVP 骨架。本文带你弄清这两种模板各自生成什么、差在哪里以及你的页面到底该选哪一个。第 0 步先生成 MVP Boilerplate 基础层每个项目只做一次两个页面模板都依赖一组公共基类——BaseActivity、BaseFragment、BasePresenter、BaseInteractor以及 Presenter 持久化的PresenterLoader。它们由MVP Boilerplate模板生成入口见 MVPBoilerplate/template.xml。⚠️ 关键约束必须在根包目录root package上执行且每个项目只需执行一次。生成后记得把模板产出的App类配置为 AndroidManifest 中的 Application注入体系才能工作模板文件MVPBoilerplate/root/src/app_package/classes/App.java.ftl。MVP Activity一键生成自包含的完整页面选择MVP Activity模板定义MVPActivity/template.xml后按 MVPActivity/recipe.xml.ftl 的配方模板会一次性生成 9 个文件覆盖完整的 MVP 分层层次生成内容模板源文件视图层MainActivity继承BaseActivityactivity_main.xml布局Activity.java.ftl、activity_layout.xml.ftl视图契约MainView接口View.java.ftl控制层MainPresenterMainPresenterImplPresenter.java.ftl模型层MainInteractorMainInteractorImplInteractor.java.ftl注入层Dagger 2 的MainComponentMainModuleComponent.java.ftl、Module.java.ftlActivity 模板还有一个 Fragment 没有的特权它会自动把新页面合并注册进 AndroidManifest.xml见 MVPActivity/root/AndroidManifest.xml.ftl 的merge规则并且表单里提供了Launcher Activity 选项可让该页面成为应用启动入口见 MVPActivity/template.xml 中的isLauncher参数。布局默认命名也是activity_前缀符合 Android 命名惯例。MVP Fragment不碰清单、可嵌入的轻量页面MVP Fragment模板MVPFragment/template.xml生成的文件清单与 Activity 几乎一一对应差异体现在三处不修改 AndroidManifest配方 MVPFragment/recipe.xml.ftl 中没有 manifest 合并步骤因为 Fragment 本来就不需要注册没有 Launcher 选项Fragment 不能独立启动应用表单里自然没有这个参数布局命名不同默认前缀是fragment_且配方里不额外生成dimens.xml。生成的 Fragment 类模板MVPFragment/root/src/app_package/classes/Fragment.java.ftl继承的是BaseFragment而非BaseActivity其余 View / Presenter / Interactor / 注入层的结构与 Activity 完全一致——同一个 Presenter 契约可以无感地在两种视图间复用。一张表看清两种模板的核心差异对比项MVP ActivityMVP Fragment基类BaseActivityAppCompatActivityBaseFragmentandroidx Fragment自动注册 Manifest✅ 是❌ 否Launcher应用入口选项✅ 有❌ 无布局默认前缀activity_fragment_额外生成 dimens.xml✅ 有❌ 无能否独立启动✅ 能❌ 需宿主 Activity文件数量10 个含 manifest 合并8 个生命周期两者共享同一套 Presenter 保活机制无论选哪种页面Presenter 都会通过Loader 异步加载从而在屏幕旋转、Activity 重建时存活。这一逻辑封装在 BaseActivity.java.ftl 和 BaseFragment.java.ftl 中两者的回调时机完全一致。两个必须记住的新手陷阱mPresenter在onCreate/onViewCreated里一定是 nullLoader 是异步的业务逻辑请等onStart之后再写视图只在onStart→onStop期间对 Presenter 可见后台任务必须在onPresenterDestroyed中彻底停止避免内存泄漏。选型建议什么时候用哪个选 MVP Activity 的场景页面是应用的独立入口或一级导航页首页、登录页、设置页需要配置 Intent Filter、启动模式或作为应用图标入口页面之间跳转靠Intent希望每个页面自包含、可单独启动和测试。选 MVP Fragment 的场景页面是某个 Activity 内部的一块模块底部 Tab 页、ViewPager 翻页卡片同一个 Activity 要承载多个可切换视图或需要左右双栏布局平板适配希望复用同一套 View 契约把界面拆得更小、更独立。一句话结论独立整页、要进清单 →MVP Activity嵌入复用、灵活切换 →MVP Fragment。两者共用同一套 Boilerplate 基础层甚至可以同项目混用——先在根包生成一次 Boilerplate之后按页面性质各取所需即可。两个容易踩的坑必须从根包生成页面如果在子包上执行模板会在子包下重复生成整棵 MVP 目录树injection / presenter / interactor 全部再来一套这不是你期望的结果别在生命周期回调里直接调mPresenter生成代码中已用注释提醒Do not call mPresenter from here, it will be null!所有 Presenter 调用都放在onStart之后的安全窗口内。安装模板只需按 README.md 中的说明把MVPBoilerplate、MVPActivity、MVPFragment三个目录复制到 Android Studio 的templates/activities目录macOS 也可直接运行仓库根目录的 install.sh 脚本。【免费下载链接】Android-Studio-MVP-templateAndroid MVP template for Android Studio项目地址: https://gitcode.com/gh_mirrors/an/Android-Studio-MVP-template创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号