如果重新创建活动,是不是会调用 onNewIntent 或 onActivityResult?
Posted
技术标签:
【中文标题】如果重新创建活动,是不是会调用 onNewIntent 或 onActivityResult?【英文标题】:Does onNewIntent or onActivityResult get called if the activity is recreated?如果重新创建活动,是否会调用 onNewIntent 或 onActivityResult? 【发布时间】:2019-10-30 04:03:11 【问题描述】:我的活动 A 在另一个应用程序中启动了一个活动 B,用户可以在该活动上花费相当长的时间。在此期间,android 可能会破坏我的活动 A(也许是为了回收内存),我想知道:
-
如果A以
startActivityForResult
开头B,B调用setResult
返回A,如果A需要重新创建,是否会在A的onCreate
之后调用onActivityResult
?
如果 A 以 startActivity
开头 B,并且 B 通过使用标志 FLAG_ACTIVITY_SINGLE_TOP
调用 startActivity
返回 A,如果 A 还活着,则应调用 onNewIntent
。但是如果A被销毁,onNewIntent
会在onCreate
之后被调用吗?
我已阅读有关 SO 上的 android 活动生命周期帖子,但对此不确定。对此进行实验并不容易。
【问题讨论】:
在您的设备上,在“设置”>“系统”>“开发人员选项”下,打开“不保留活动”选项。这将在您离开活动后立即终止活动,模拟系统将其杀死以回收内存。然后您可以进行实验,看看会发生什么。 【参考方案1】:1) 会的,但是生命周期调用的顺序可能与您预期的有所不同。为这种可能性做好准备。
【讨论】:
以上是关于如果重新创建活动,是不是会调用 onNewIntent 或 onActivityResult?的主要内容,如果未能解决你的问题,请参考以下文章