首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android中重启Activity

如何在Android中重启Activity
EN

Stack Overflow用户
提问于 2009-09-09 11:12:38
回答 19查看 342.3K关注 0票数 411

如何重启安卓Activity?我尝试了下面的方法,但是Activity退出了。

代码语言:javascript
复制
public static void restartActivity(Activity act){

        Intent intent=new Intent();
        intent.setClass(act, act.getClass());
        act.startActivity(intent);
        act.finish();

}
EN

回答 19

Stack Overflow用户

发布于 2010-10-20 12:44:44

我这样做了我的主题切换器:

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

基本上,我首先调用finish(),并且我使用的目的与本活动开始时的目的完全相同。这似乎起作用了吗?

更新:正如下面的Ralf所指出的,Activity.recreate()是API11及以后版本的发展方向。如果是在API11+环境中,这是更好的选择。如果您使用的是API10或更低版本,您仍然可以检查当前版本并调用上面的代码片段。(请不要忘记给Ralf的答案加分!)

票数 653
EN

Stack Overflow用户

发布于 2012-05-05 01:11:21

从接口级别11 (蜂巢)开始,可以调用activity的recreate()方法(多亏了this answer)。

recreate()方法的作用类似于配置更改,因此如果适用,还会调用onSaveInstanceState()和onRestoreInstanceState()方法。

票数 389
EN

Stack Overflow用户

发布于 2010-08-06 07:36:54

在SDK 11之前,这样做的方法如下:

代码语言:javascript
复制
public void reload() {
    Intent intent = getIntent();
    overridePendingTransition(0, 0);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    finish();
    overridePendingTransition(0, 0);
    startActivity(intent);
}
票数 136
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1397361

复制
相关文章

相似问题

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