Intent intent = null;
intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
overridePendingTransition(R.anim.no_animation, R.anim.slide_down_out);
ClassSelector.this.finish();
startActivity(intent);
我需要从当前页面转换到另一个页面A.我添加了代码'intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);' 因为这个代码是应用的,所以应用于A的动画也不起作用。
答案 0 :(得分:3)
两面旗帜
Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK
有相反的意图。一个将旧活动置于最前面,另一个创建新任务 可能有无法预测的结果。
Intent.FLAG_ACTIVITY_SINGLE_TOP
可以带来你需要的动画。
答案 1 :(得分:1)
您可以在致电finish()
之后立即致电活动中的startActivity()
(并删除您的旗帜),然后在新活动中,使用其onBackPressed()
方法,叫这段代码:
@Override public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
答案 2 :(得分:0)
您只需要在startActivity之后调用overridePendingTransition。
例如:
Intent intent = null;
intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
ClassSelector.this.finish();
startActivity(intent);
overridePendingTransition(R.anim.no_animation, R.anim.slide_down_out);