6

私は4つのレベルの深さからなる階層を持っています。私のプロファイルには第2レベルの階層があります。つまり、プロファイル内にいるときに押すと、常にユーザーを第1階層レベルに戻す必要があります。

私の問題は、プロファイルへのリンクがすべてのレベルで利用できることです。したがって、たとえば、第4レベルのユーザーがプロファイルリンクをクリックした場合、その階層位置を第5レベルではなく第2レベルに変更する必要があります。

私はそれを行うための本質的な方法があるに違いないと思います。これまでのところ、の組み合わせを考え出しましたCLEAR_TOP to the 1st level + if(extra){startActivity(Profile)}が、このようにして、第1レベルのアクティビティが再作成されます-そうですか?だから私はあなたにもっと良いものを提案してほしいのです。

みんなありがとう :)

UPD:少し明確にするために:利用可能なプロファイルのインスタンスがない可能性があるため、この場合、単に上部をクリアしても機能しません。

4

2 に答える 2

1

プレーンではなく、第1レベルのMainActivityが再作成されないようにするために、CLEAR_TOPを追加しましIntent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOPた。ドキュメントによると、MainActivityはonNewIntent、すでに作成されている場合に呼び出されます。

これを実行するとswitch、インテントデータを処理して、第2レベルのアクティビティを開始できます

于 2012-08-02T12:00:42.097 に答える
0

MainActivityに戻るインテントを作成するときに、CLEAR_TOPとの両方のフラグを設定できますNEW_TASK。このようにして、既存のアクティビティが存在する場合はそれを元に戻すか、そうでない場合は新しいアクティビティを作成する必要があります。

.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
于 2012-07-30T07:44:44.140 に答える