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

时间:2014-01-23 17:22:30

标签: android android-activity

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

我的问题来自this post

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

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

b)

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

这两个实际上如何运作?他们重新创建活动的过程有什么不同吗?

我相信这两个重新创建活动的方式之间肯定会有一些区别,因为我已经看到recreate()为我的活动中的视图添加了一些默认(垃圾?)值。 此外,recreate()使用默认的黑色初始视图

启动新活动

1 个答案:

答案 0 :(得分:9)

重新创建 - (您可以恢复活动状态) 这导致与由于配置更改而创建Activity时基本相同的流 - 当前实例将经历其生命周期到onDestroy(),然后在其之后创建新实例。

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

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

VS

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