gpt4 book ai didi

android - 使用 recreate() 方法和 startActivity(getIntent()) 重新创建 Activity 的区别

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:33 31 4
gpt4 key购买 nike

我或多或少是android编程的初学者

我的问题来自 this post .

据我所知,主要有两种方法可以重新启动我所在的同一个 Activity:

a)Activity.recreate() [在 API 11 之后添加]

二)

Intent intent = getIntent();
finish();
startActivity(intent);

这两者究竟是如何运作的?他们重新创建 Activity 的过程有什么不同吗?

我相信这两个重新创建 Activity 的方式一定有一些区别,因为,我已经看到 recreate() 向我的 Activity 中的 View 添加了一些默认(垃圾?)值。此外,recreate() 使用默认的黑色启动 View 启动新 Activity

最佳答案

重新创建 -(您可以恢复 Activity 状态)这导致与由于配置更改而创建 Activity 时基本相同的流程——当前实例将经历其生命周期到 onDestroy(),然后在它之后创建一个新实例。 这也意味着 ViewModel 没有被销毁。

recreate() 方法就像配置更改一样,因此如果适用,您的 onSaveInstanceState() 和 onRestoreInstanceState() 方法也会被调用。

非常有趣的阅读: http://developer.android.com/training/basics/activity-lifecycle/recreating.html

对比

完成ActivityResult 通过 onActivityResult() 传播回启动您的人。并作为堆栈顶部的新 Activity 再次开始

关于android - 使用 recreate() 方法和 startActivity(getIntent()) 重新创建 Activity 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21315180/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com