【发布时间】:2015-04-18 21:04:14
【问题描述】:
我知道这可能非常简单,但我就是想不通。
我正在尝试在操作后重新加载/重新创建活动。我知道我可以使用:
Intent intent = getIntent();
finish();
startActivity(intent);
但是在阅读网站上的答案时,我被告知在 11 api 之后使用“recreate()”。任何帮助将不胜感激,谢谢!
【问题讨论】:
我知道这可能非常简单,但我就是想不通。
我正在尝试在操作后重新加载/重新创建活动。我知道我可以使用:
Intent intent = getIntent();
finish();
startActivity(intent);
但是在阅读网站上的答案时,我被告知在 11 api 之后使用“recreate()”。任何帮助将不胜感激,谢谢!
【问题讨论】:
虽然使用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);
}
【讨论】:
this.recreate() 就是它所需要的。将该代码粘贴在您要重新加载的活动中的方法中。我有一个项目,它与单击按钮相关联,但您可以根据需要使用它。
【讨论】:
我对你的问题有点困惑,你自己在回答中回答了这个问题。直接调用方法recreate...
来自recreate()的文档:
使用新实例重新创建此 Activity。这导致与由于配置更改而创建 Activity 时的流程基本相同——当前实例将经历其生命周期到 onDestroy() 并在其后创建一个新实例。
从活动代码中调用recreate(),而不是
Intent intent = getIntent();
finish();
startActivity(intent);
重新启动活动(在 API 11 之后)。
请参阅this 答案以获取更通用的重新创建例程,该例程甚至适用于 API/SDK 11 之前。
【讨论】: