我有一个activity
,其中包含一些处理视频和音频的非常复杂的第三方逻辑。
所有这些第三方设置都有令人费解的设置,包括不同的回调和服务器请求。
现在,通过此activity
,用户可以远离它。
当用户按下时,我希望我的activity
恢复,好像它只是一个新的activity
正在启动。 (所以基本上我宁愿所有第三方的东西经历整个生命周期,而不是做恢复逻辑,这对我来说很难维持)
此特定activity
是否有办法始终重启?而不仅仅是在导航时恢复?
我想,只要我离开它,我就可以finish()
我的活动,当用户返回时,明确启动它购买startActivity()
;
但还有其他方法吗?我的活动只需要1个额外字符串即可。
答案 0 :(得分:1)
在运行时,活动堆叠在一起,因此只要活动A启动的活动B处于活动状态,活动A就会保留在内存中。
您可以为活动A调用finish()
并从A的父级启动活动B,当B关闭时 - 从同一个父级重新启动A,但这只是不好的做法并扭曲了应该使用的活动方式。您还可以使用recreate()
方法创建活动的干净实例,这样会更好。
但是,我的观点是,一般来说,BP解决方案将处理Activity A的生命周期事件,并使用与第三方相关的类,MVP模式等处理您的第三方lib。