2017-01-28 16 views
1

いつアンドロイドを使用するのですか:ヒストリーとインテントを使用するタイミングFLAG_ACTIVITY_CLEAR_TASK?私のシナリオでは アクティビティBからアクティビティCに移動するときに、アクティビティAを含むバックスタックをクリアしたいのですか? noHistoryまたはFLAG_ACTIVITY_CLEAR_TASKを使用する必要がありますか? Androidの開発者向けドキュメントからアンドロイドの違いは何ですか?ヒストリカルとアンドロイドFLAG_ACTIVITY_CLEAR_TASK

答えて

0

FLAG_ACTIVITY_NO_HISTORY

設定した場合は、新しいアクティビティが履歴スタックに保存されていません。ユーザーがそれから離れて移動すると、アクティビティは終了します。これはnoHistory属性でも設定できます。

FLAG_ACTIVITY_CLEAR_TASKは、しかしながら、異なる役割を実行する:

Context.startActivity(に渡されるインテントに設定した場合)、このフラグは、アクティビティに関連付けられているであろう既存のタスクがあることになりますアクティビティが開始される前にクリアされます。つまり、アクティビティは空のタスクの新しいルートになり、古いアクティビティはすべて終了します。これは、FLAG_ACTIVITY_NEW_TASKと組み合わせてのみ使用できます。要約すると

FLAG_ACTIVITY_CLEAR_TASKが関連付けられる既存のタスクが発生します一方、FLAG_ACTIVITY_NO_HISTORYまたはnoHistoryを使用して、新しい活動が(それ以降のビューを飛び出したときに、それをスキップtherby)履歴スタックに追加されていないことを保証しますアクティビティーが開始される前にクリアされるアクティビティー。

この場合、アクティビティAにFLAG_ACTIVITY_NO_HISTORYを使用して、バックスタックに追加されないようにします。

関連する問題