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

反対の意図があります。1 つは古いアクティビティを最優先し、もう 1 つは予測できない結果をもたらす可能性のある新しいタスクを作成します。

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 に答える