我或多或少是android编程的初学者
我的问题来自this post。
据我所知,主要有两种方法可以重新启动我所在的同一个Activity:
a)Activity.recreate()
[在API 11之后添加]
b)
Intent intent = getIntent();
finish();
startActivity(intent);
这两个实际上如何运作?他们重新创建活动的过程有什么不同吗?
我相信这两个重新创建活动的方式之间肯定会有一些区别,因为我已经看到recreate()
为我的活动中的视图添加了一些默认(垃圾?)值。
此外,recreate()
使用默认的黑色初始视图
答案 0 :(得分:9)
重新创建 - (您可以恢复活动状态) 这导致与由于配置更改而创建Activity时基本相同的流 - 当前实例将经历其生命周期到onDestroy(),然后在其之后创建新实例。
recreate()方法就像配置更改一样,因此如果适用,也会调用onSaveInstanceState()和onRestoreInstanceState()方法。
非常有趣的阅读: http://developer.android.com/training/basics/activity-lifecycle/recreating.html
VS
完成强> ActivityResult会传播回通过onActivityResult()启动您的人。 并重新开始作为堆栈顶部的新活动