我如何重新启动一个Android活动?我尝试了下面的方法,但是这个活动就是退出了。
public static void restartActivity(Activity act){
Intent intent=new Intent();
intent.setClass(act, act.getClass());
act.startActivity(intent);
act.finish();
}
我如何重新启动一个Android活动?我尝试了下面的方法,但是这个活动就是退出了。
public static void restartActivity(Activity act){
Intent intent=new Intent();
intent.setClass(act, act.getClass());
act.startActivity(intent);
act.finish();
}
当前回答
这个解决方案对我很有效。
首先完成活动,然后再开始。
示例代码:
public void restartActivity(){
Intent mIntent = getIntent();
finish();
startActivity(mIntent);
}
其他回答
这个解决方案对我很有效。
首先完成活动,然后再开始。
示例代码:
public void restartActivity(){
Intent mIntent = getIntent();
finish();
startActivity(mIntent);
}
由于API级别11 (Honeycomb),您可以调用活动的rebuild()方法(多亏了这个答案)。
rebuild()方法的作用就像配置更改一样,因此如果适用,也会调用onSaveInstanceState()和onRestoreInstanceState()方法。
把Ralf和Ben的回答(包括评论中的变化)结合起来:
if (Build.VERSION.SDK_INT >= 11) {
recreate();
} else {
Intent intent = getIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);
overridePendingTransition(0, 0);
}
你问题的答案是:
public static void restartActivity(Activity act){
Intent intent=new Intent();
intent.setClass(act, act.getClass());
((Activity)act).startActivity(intent);
((Activity)act).finish();
}
您需要转换到活动上下文来启动新的活动以及完成当前活动。
希望这对我有用,对我有用。
好吧,这里没有列出,但有一些已经发布的组合:
if (Build.VERSION.SDK_INT >= 11) {
recreate();
} else {
Intent intent = getIntent();
finish();
startActivity(intent);
}