2011-12-08 2 views
1

私はTwitterアプリのように、ダッシュボードに加えて、アクションバーのUIを実装しています:アクティビティスタックを管理するか、アクティビティを破棄することができますか?

Twitter Dashboard for Android

各ボタンをダッシュ​​ボードには、さまざまな活動にユーザーを取ります。これらの活動のいくつかは他の活動よりも重要であり、ユーザーがダッシュボードを介して合理的に頻繁に切り替えると想像することができます。

私は2つのオプションが持っているように私は感じ

  1. をユーザーが戻ってダッシュボードに行くとき、それはちょうど、スタックの先頭にダッシュボードアクティビティをプッシュするように、意図フラグを使用して行く活動サイクルをキープ。ユーザーが別のアクティビティーに戻ると、ユーザーはそのアクティビティーをスタックの一番上にプッシュします。 OSがメモリを取り戻すまで、何の活動も破壊されることはありません。これは問題ありません。

  2. ユーザーがダッシュボードに戻ってから後で再作成すると、アクティビティが破棄されるようにします。

パフォーマンスとベストプラクティスのどちらが優れていますか?私はオプション1が好きですが、それらのインテントフラグの目的を乱用しているかどうかはわかりません。オプション1を使用すると、戻るボタンのボタンをオーバーライドしてfinish()が呼び出されないようにする必要がありますか?

答えて

0

個人的に私は最初の方が良いです。この方法では、ユーザーが他のアクティビティの状態を簡単に覚えています。

たとえば、子アクティビティでユーザーがリストをスクロールした後、ダッシュボードに戻り、子アクティビティに戻った場合、スクロール位置はオフにします。

メモリに関しては、問題ではないと思います。たとえば、タブコンポーネント(ダッシュボードへのパラレルナビゲーションコントローラ)を用意しましょう。タブコントロールでは、すべての子アクティビティ(タブアクティビティ)も破棄されることはありません。

メモリが問題になる場合は、2つのアイデアを組み合わせます。それほど重要でない活動については、アプローチ2を実装し(バックでそれらを破棄する)、より重要なアクティビティ(例えば、状態がユーザにとって重要である場所)については、アプローチ1を実装します。

+0

いいもの。私は私の活動のいくつかのためにそれが記憶される必要があります。記憶に関しては、OSが私の活動を破壊するのを防ぐものではないので、私は心配していません。 –

関連する問題