繁体   English   中英

startActivityForResult有时会导致主活动结束并从活动堆栈中删除

[英]startActivityForResult sometimes cause main Activity finish and removed from the activities stack

我有一个主app A ,请使用startActivityForResult启动app B

一切正常,但最近有时app A已完成并从活动堆栈中删除(没有任何错误提示)。

App B仍然运行良好,没有任何问题。

在我检查了活动堆栈之后, app A消失了,而app B仍然在那里( adb shell dumpsys activity命令)。

有人知道如何解决这个问题吗?

在Activity的onDestroy()方法的文档中。 据说:

在销毁活动之前执行任何最后的清理。 这可能是由于活动即将完成(有人在其上称为finish()),或者因为系统正在临时销毁该活动实例以节省空间。您可以使用isFinishing()方法区分这两种情况。

如果系统认为它需要更多位置,则可以自行选择杀死您的活动A。 那就是您的附加内容。

如文档中所述,您可以通过重写OnDestroy()方法并通过使用isFinnishing()通过用户调用或系统调用检查它是否完成来避免它。 然后,例如,仅当它是用户销毁而不是系统销毁时,才可以调用super.onDestroy() 请注意,这意味着系统将永远无法自行终止您的活动,因此您必须确保调用finnish()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM