每次达到特定活动时都会完全重启活动

时间:2017-11-07 17:30:37

标签: android android-activity

我有一个activity,其中包含一些处理视频和音频的非常复杂的第三方逻辑。

所有这些第三方设置都有令人费解的设置,包括不同的回调和服务器请求。

现在,通过此activity,用户可以远离它。

当用户按下时,我希望我的activity恢复,好像它只是一个新的activity正在启动。 (所以基本上我宁愿所有第三方的东西经历整个生命周期,而不是做恢复逻辑,这对我来说很难维持)

此特定activity是否有办法始终重启?而不仅仅是在导航时恢复?

我想,只要我离开它,我就可以finish()我的活动,当用户返回时,明确启动它购买startActivity();

但还有其他方法吗?我的活动只需要1个额外字符串即可。

1 个答案:

答案 0 :(得分:1)

在运行时,活动堆叠在一起,因此只要活动A启动的活动B处于活动状态,活动A就会保留在内存中。

您可以为活动A调用finish()并从A的父级启动活动B,当B关闭时 - 从同一个父级重新启动A,但这只是不好的做法并扭曲了应该使用的活动方式。您还可以使用recreate()方法创建活动的干净实例,这样会更好。

但是,我的观点是,一般来说,BP解决方案将处理Activity A的生命周期事件,并使用与第三方相关的类,MVP模式等处理您的第三方lib。