概述
需求
目前开发了在线娱乐、收音机、本地音乐三个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的页面后才会跳转到第三方应用,而且支付宝与第三方应用没有共同布局,即类似于我们需求的左侧统一导航栏,查找资料用的可能是插件化技术,故不满足我们的需求。
请教了同行,同行给出了两个解决思路,也即上述的两种方案思路,故按照这两种思路进行了实践有了上述的总结。
最后
以上就是殷勤心锁为你收集整理的多个APP合并为一个APP开发的实现方案需求一、方案一——仍然分三个APP开发二、方案二——合并为一个APP开发总结的全部内容,希望文章能够帮你解决多个APP合并为一个APP开发的实现方案需求一、方案一——仍然分三个APP开发二、方案二——合并为一个APP开发总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复