我有一个 activity
,有一些非常复杂的第三方逻辑处理视频和音频 .
所有这些第三方设置都有令人费解的设置,具有不同的回调和服务器请求 .
现在,从这个 activity
,用户可以远离它 .
当用户按下时,我希望我的 activity
恢复,好像它只是一个新的 activity
正在启动 . (所以基本上我宁愿所有我的第三方的东西经历整个生命周期,而不是做恢复逻辑,这对我来说很难维持)
有没有办法让这个特定的 activity
始终重启?而不是只是在导航时恢复?
我想每当我离开它时我都可以 finish()
我的活动,当用户回去时,明确地启动它买 startActivity()
;
但还有其他方法吗?我的活动只需要1个额外的String for bundle .
1 回答
在运行时,活动堆叠在一起,因此只要活动A启动的活动B处于活动状态,活动A就会保留在内存中 .
您可以为活动A调用
finish()
并从A 's parent, and when B is being closed - relaunch A from the same parent, but that'启动活动B只是不好的做法并扭曲应该使用的活动方式 . 您还可以使用recreate()方法创建活动的干净实例,这样会更好 .但是,我的观点是,一般来说,BP解决方案将处理Activity A的生命周期事件,并使用与第三方相关的类,MVP模式等处理您的第三方lib .