多个APP合并为一个APP开发的实现方案 您所在的位置:网站首页 怎么制作文档为三个页面 多个APP合并为一个APP开发的实现方案

多个APP合并为一个APP开发的实现方案

2024-03-04 03:10| 来源: 网络整理| 查看: 265

需求

目前开发了在线娱乐、收音机、本地音乐三个APP,需要开发一款APP集成这三个模块功能。 具体要求:左侧显示导航栏,包含“在线娱乐”、“收音机”、“本地音乐”按钮,点击可进入相应模块功能。 目前已知有两种实现方案,具体如下:

一、方案一——仍然分三个APP开发

三个APP具有布局完全一致的左侧导航栏,点击导航栏完成APP之间的切换。这里通过三个APP来回跳转的方式,实现了让用户看起来是一个APP。其中需要注意:

1.在每个APP中,在BaseActivity中统一显示、控制左侧导航栏。注意每个活动取消切换动画,背景设置为透明色,这样可保证APP之间来回切换时看着像一个APP。

2.多个娱乐类应用在后台时,需要考虑点击图标应该打开哪个应用,需要每个APP都需要通过发送接收广播来记录应该启动哪个APP,这个过程就相当繁琐;

2.灵活度低,如果导航栏需要新增/删除/修改时,需要去三个APP中进行修改。

二、方案二——合并为一个APP开发

按照一般的开发会存在一个问题:如果按照默认活动启动模式,记录三个模块的栈顶Activity,模块A依次打开A1-A2-A3,再点击导航栏按钮模块B依次打开B1-B2-B3,再次点击模块A按钮跳转到A3后,点击返回按钮则会跳转到B3页面而非A2。

1.结合singleTask和taskAffinity实现一个APP中有三个任务栈,使用三个任务栈分别管理相应模块(可避免上述问题);

2.使用MyApplication在活动关闭、打开、退出APP时分别记录三个模块的任务栈列表;

3.存在的问题,由于会创建三个任务栈,所以在创建第二个、第三个任务栈时会出现黑屏现象,目前仍未解决。考虑到手机APP之间跳转貌似没有此现象,应该是能够解决的;

4.后续开发建议可考虑组件化开发,三个功能模块分别为三个模块,这样每个模块可单独运行。

总结

很多车机已经将娱乐类APP融为一个大的APP,大多数车厂的案例也只是左侧导航栏点击控制界面的切换,再点击了导航栏按钮后只有一个页面,不会存在从这个页面切换到下一个页面的情况,即每个模块只有一个页面,这种情况使用fragment就能实现。 参考吉利、领克车型,每个模块会有很多个页面,这个就与我们的需求类似。 参考了手机APP,比如支付宝中嵌套了很多第三方应该,跳转会有一个类似loading的页面后才会跳转到第三方应用,而且支付宝与第三方应用没有共同布局,即类似于我们需求的左侧统一导航栏,查找资料用的可能是插件化技术,故不满足我们的需求。 请教了同行,同行给出了两个解决思路,也即上述的两种方案思路,故按照这两种思路进行了实践有了上述的总结。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有