如何调用recreate()?

时间:2015-04-18 21:04:14

标签: android android-activity

我知道这可能非常简单,但我无法理解。

我尝试在操作后重新加载/重新创建活动。我知道我可以使用:

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

但是,在阅读网站上的答案时,我告诉他们使用“重新创建”()' 11 api之后。任何帮助将不胜感激,谢谢!

3 个答案:

答案 0 :(得分:27)

使用recreate方法时可以使用

this.recreate()

它仅在API级别11中添加。如果要包含更多设备,可以检查API级别并实现重新创建方法以及

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

你可以通过制作像...这样的if语句来使用它们。

if (android.os.Build.VERSION.SDK_INT >= 11){
//Code for recreate
recreate();

}else{
//Code for Intent
Intent intent = getIntent();
finish();
startActivity(intent);
}

答案 1 :(得分:2)

this.recreate()就足够了。将该代码粘贴到您要重新加载的活动中的方法中。我有一个项目,它与按钮单击相关联,但您可以根据需要使用它。

答案 2 :(得分:2)

我对你的问题感到有点困惑,你自己在答案中回答了这个问题。直接调用方法重新创建......

来自recreate()的文档:

  

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

从活动代码中调用recreate()而不是

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

重新启动活动(在API 11之后)。

有关更通用的重新创建例程,请参阅this答案,该例程甚至适用于API / SDK 11之前。