首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调用recreate()?

如何调用recreate()?
EN

Stack Overflow用户
提问于 2015-04-19 05:04:14
回答 3查看 30.2K关注 0票数 17

我知道这可能非常简单,但我就是想不通。

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

代码语言:javascript
复制
Intent intent = getIntent();
finish();
startActivity(intent);

但是在阅读网站上的答案时,我被告知在11API之后使用'recreate()‘。如有任何帮助,将不胜感激,谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-19 05:18:21

虽然使用recreate方法是通过执行以下操作来实现的

代码语言:javascript
复制
this.recreate()

它只是在API级别11中添加的。如果您想包含更多设备,可以检查API级别并实现recreate方法和

代码语言:javascript
复制
Intent intent = getIntent();
finish();
startActivity(intent);

您可以通过使用if语句来使用这两种方法,例如...

代码语言:javascript
复制
if (android.os.Build.VERSION.SDK_INT >= 11) {
    //Code for recreate
    recreate();
} else {
    //Code for Intent
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}
票数 31
EN

Stack Overflow用户

发布于 2015-04-19 05:12:18

this.recreate()就是它所需要的。将代码放在一个方法中,该方法位于您要重新加载活动中。我有一个项目,这是捆绑到一个按钮点击,但你可以使用它,但你需要它。

票数 2
EN

Stack Overflow用户

发布于 2015-04-19 05:16:18

我被你的问题搞糊涂了,你自己回答了你的问题。直接调用方法recreate ...

来自recreate()的文档

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

从活动代码内部调用recreate(),而不是

代码语言:javascript
复制
Intent intent = getIntent();
finish();
startActivity(intent);

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

有关更通用的重新创建例程的信息,请参阅this answer,该例程甚至可以在API11/SDK11之前使用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29722839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档