-1

アクティビティA、B、C、DとサービスSがあります。アクティビティの階層はA-> B->C->Dです。

サービスがシグナルを受信すると、サービスは通知を追加し、ユーザーがそれをクリックすると、新しいアクティビティを作成しますE.既存のタスクがある場合は、一番下のアクティビティの子としてアクティビティを作成します。(つまり、A-> B->C->EまたはA->EまたはA->B->EまたはA->B->C-> D-> E)この場合、A、B、C、 Dは以前と同じ状態である必要があり、Eは新しいアクティビティです。既存のタスクがない(実行中のタスクがない)場合は、別の新しいアクティビティAの下にアクティビティを作成します(つまり、A-> E)。この場合、A、Eはすべて新しいアクティビティです。

助言がありますか?

ありがとう!

4

1 に答える 1

0

あなたが持っているなら私の理解から

A -> B -> C -> D -> E

次に、これは、Eから戻ると、D、次にCなどになってしまうことを意味します。それ以外の場合は、想定していることの記述が間違っています。

基本的に、 AEを実行する代わりに実行できるのは、Eに直接移動し、通知のデータにパックすることでそれぞれの会話につながるデータを渡すことです。

Eに移動できれば、AEに移動する必要はありません。ユーザーが戻るボタンを押して戻る場合は、それをインターセプトして、設計を尊重するようにフローを処理する必要があります。これを行うには、常にEAから段階的に行う必要があります。それ以外の場合は、アプリケーションのフローを適切に実装していません。

また、ADがいかに貧弱な設計であるかの設定。私が説明したことを反映するようにこれを変更する必要があります。

Main screen (A)

List Screen (B)

Message Screen (C)

Details Screen (D)

これは理にかなっており、より良いフローです。Dに直行し、[戻る]ボタンを使用してDからAに逆方向に移動します。

ノート

設定画面はフローに含めるべきではありません。これは、ユーザーが設定画面を通過しなかったためにユーザーを混乱させ、コンテキストのない画面を表示するためです。また、サービスもフローの一部であってはならず、その状態は必要に応じてアクティビティによって維持される必要があります。

于 2013-02-24T07:20:53.777 に答える