我如何重新启动一个Android活动?我尝试了下面的方法,但是这个活动就是退出了。

public static void restartActivity(Activity act){

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

}

当前回答

调用onCreate方法。例如onCreate(null);

其他回答

调用onCreate方法。例如onCreate(null);

你问题的答案是:

public static void restartActivity(Activity act){
    Intent intent=new Intent();
    intent.setClass(act, act.getClass());
    ((Activity)act).startActivity(intent);
    ((Activity)act).finish();
}

您需要转换到活动上下文来启动新的活动以及完成当前活动。

希望这对我有用,对我有用。

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

public void reload() {
    Intent intent = getIntent();
    overridePendingTransition(0, 0);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    finish();
    overridePendingTransition(0, 0);
    startActivity(intent);
}

这是目前为止重启当前活动最简单的方法:

finish();
startActivity(getIntent());

由于API级别11 (Honeycomb),您可以调用活动的rebuild()方法(多亏了这个答案)。

rebuild()方法的作用就像配置更改一样,因此如果适用,也会调用onSaveInstanceState()和onRestoreInstanceState()方法。