2011-07-22 4 views
0

私は自分のワークフローを設定して、複数のページを通過した後、本質的に「ログオン」した場所に戻って、アクティビティはルートログインページまでクリアされます。だから、基本的に、私は一番上のアクティビティから抜け出し、過去5回のアクティビティをスキップして、ルートアクティビティを終了します。私はonActivityResult()によってこれを達成します。メモリ管理のために以前のアクティビティがクリアされたときの戻るボタン

私が抱えている問題は、ユーザーがハードウェアのホームボタンを使用してアプリケーションを最小化し、大量のメモリを消費する他のアプリケーションを実行すると、そのアクティビティからメモリを取り戻しているようですアクティビティスタックにあります。だから、私のアプリケーションを再オープンすると、一番上のアクティビティが再び開きます(onCreate()が再び呼び出され、アニメーションは最初から実行されます)。その後、私が戻るボタンを押すと、onActivityResult()を使用してログインページまでのすべてのアクティビティを閉じるように設定しても、各アクティビティに対してonCreate()が呼び出されてから閉じる。これは、ユーザーの立場からは、すぐに再びログイン画面に移動するのではなく、各アクティビティのタイトルが開いたり閉じたりしている間、一瞬だけフラッシュが見えることを意味します。

誰かがonCreate()を呼び出す方法を知っていますか?私は、各onCreate()メソッドの中でチェックされ、すぐにfinish()とreturnを呼び出すように設定されたフラグを入れてみましたが、Androidではsuper.onCreate()メソッドを呼び出さないようにしていません。 super.onCreate()メソッドを呼び出すと、setContentView()が呼び出されない場合でも、タイトルを示すアクティビティが表示されます。

答えて

1

ActivityGroupであなたの活動を組織することができます。多分子供たちの活動は同じことをしないだろうか?

+0

うん、良い点。 ActivityGroupsはTabbedインターフェイス用に別の場所に設定されているので、適応するのは簡単かもしれません。彼らはしかし、私はむしろ単純なままにして、可能であれば定期的な活動のスタックを使用したいと思うと痛みです。私はしばらくの間、答えを与えるのを延期するつもりですが、私はこの作業を見ることができます。 – mnemy

+0

ええ、それは最善の方法ではないかもしれませんが、私があなたのために働くことができるものは裏です。バックを押すと、グループの現在のビューを履歴arraylistの最初のビューに変更して、これらの短いプレフィニッシュを防ぐことができます。 –

+0

おっと。これは私たちには明らかだったはずですが、ActivityGroupインスタンスもメモリ管理によって再利用されることが分かりました。したがって、アプリを再入力すると、新しいActivityGroupインスタンスが作成されるため、最小化したアクティビティグループではなく、アクティビティグループの「ルート」アクティビティになります。それを傷つける。 – mnemy