起因
-
需求:发布订阅功能需要能够一直挂在后台。
-
出现问题:由于小程序运行机制——30分钟后会销毁进程,导致连接中断。所以需要重新订阅。
-
重新订阅:
- 实现:通过捕获连接中断产生的报错,来递归订阅。
-
-
结果:
- iso:可以实现´后台停留一阵回到小程序,小程序重新订阅。
- 安卓:停留一阵回到小程序,小程序无法重新订阅。
经过
-
对比iso和安卓处理小程序后台
-
iso处理小程序后台的方式像是微信中的一个线程,后台不会单独将小程序拆分出一个进程来。
-
安卓处理小程序后台,则是拆分出一个进程来——后台会显示两个进程(小程序和微信)。
- 即便后台删除微信进程,小程序依旧可以以一个独立的进程调来运行小程序。
-
结果
-
通过小程序生命周期
- 监听
onShow和onHide,模拟一次登出重新订阅的操作,从而实现无感订阅。
- 监听
总结
- 安卓微信处理小程序是以进程方式打开,即便关闭微信,小程序依旧可以在后台正常运行。
- iso版微信处理小程序则是微信中的线程,微信关闭,小程序一并关闭。
最后
- 该博客仅为个人理解,与实际可能有所偏差,也恳请读者在评论区中帮忙指出,谢谢。