0

我有并且Activity A我正在Activity B使用Activity A.setResultForActivity

现在,Activity B当我按下Done按钮时,我正在开火finish(),它返回 Activity A并返回到onActivityResult. 现在的问题是当我开枪finish()之后Activity BActivity A's onCreate没有被调用,这就是为什么

我的一些自定义侦听ListView器不起作用,似乎它们没有绑定。

所以整个活动的反应很奇怪,任何人都可以解决这个问题吗?

4

5 回答 5

2

为什么是第四个答案?因为在我看来,其他的并不完全正确。

事实是,ActivityA 可能在此期间被销毁,也可能不会。这取决于Android是否需要内存。因此,可能会调用 Activity AonCreate()以及其他生命周期回调),也可能不会。在后一种情况下,onActivityResult()调用 before onResume()

而对于配置更改,保留 Activity 状态最有效的方法是 via nonConfigurationState,如果您想在 Activity 被销毁后准备重启,您可以使用该InstanceState机制,因为当 Android 销毁您的 ActivityA时,它会保留它的意图和保存的实例状态以重新创建它。

这强调了将初始化准确地放置在它所属的回调中的绝对必要性。

要测试您的 Activity 逻辑是否工作,无论 Android 是否销毁它,您可以使用 DevTools 设置“开发设置”->“立即销毁活动”。DevTools 应用程序在 AVD 上可用,也可以从 Google Play 下载。

于 2013-04-06T17:00:02.963 回答
1

只需将您的 onCreate() 内容放在 Activity A 的 onResume() 中,setContentView() 除外。

于 2015-05-29T02:23:42.690 回答
0

在您的子活动完成后(),它会返回执行 onActivityResult,这在您的活动 A 中是这样的。 onCreate 方法不应该并且在杀死您的子活动(即活动 B)时不会被调用。

请发布一些源代码供我们使用,我会改进我的答案!:)

于 2013-04-06T16:41:59.210 回答
0

Activity AonCreate不会被调用,因为该 Activity 尚未被销毁。当一个 Activity 从另一个 Activity 重新获得焦点时,它onStartonResume被调用,所以我会将绑定的侦听器放在其中。它们也会在onCreate正常调用时被调用。

于 2013-03-29T19:48:23.287 回答
0

只需阅读 Android 活动生命周期:http: //developer.android.com/training/basics/activity-lifecycle/stopping.html。onCreate() 仅在首次创建活动时调用。您可以在 onResume() 方法中执行列表操作。

于 2013-03-29T19:45:53.137 回答