3
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 的动画也不工作。

4

3 回答 3

3

两面旗帜

Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK

有相反的意图。一个将旧活动放在首位,另一个创建一个新任务,该任务可能会产生无法预测的结果。

Intent.FLAG_ACTIVITY_SINGLE_TOP

这可以带来你需要的动画。

于 2013-02-20T05:02:40.030 回答
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);
}
于 2014-09-01T09:26:24.967 回答
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); 
于 2013-01-29T06:30:12.353 回答