我在重新启动活动时感到困惑。我有两个功能可以很好地完成相同的任务。请指导我哪个最好,为什么?
public void restart()
{
Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(R.anim.fade,R.anim.fade);
startActivity(intent);
}
或
public void restart()
{
onCreate();
}
提前谢谢?
答案 0 :(得分:3)
我认为这是一种更清洁的方式来满足您的要求。
Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);
答案 1 :(得分:0)
系统中的活动作为活动堆栈进行管理。当一个新活动开始时,它被放置在堆栈顶部并成为运行活动 - 前一个活动始终保持在堆栈中低于它,并且在新活动退出之前不会再次到达前台。
有关详细信息,请参阅Activity
答案 2 :(得分:0)
Intent intent = getIntent();
finish();
startActivity(intent);