私のアプリには無限の活動スタックを持つ能力があります。このシナリオでは、あるユーザーのページから開始し、そのユーザーの「友人」であるユーザーの一覧が表示されます。その後、私は大きな問題が...ちょうどあなたがそのように上の自分のページに移動するには、別の友人をクリックし、できる前のもの、のように見える自分のページに行くために友人に無限の活動計画
をクリックすることができます面は無限のネイティブヒープです。私はビューが膨らんだたびにこのヒープに追加すると信じています。これを数回繰り返した後、私は一貫してOOMエラーが発生するため、何らかの解決方法を見つけなければなりません。トリックは、私はいくつかの歴史をナビゲートするための最小限の最後のいくつかの活動を維持したいです。
私が思いつくことは、アクティビティスタックを監視して、特定のポイントに達するとアクティビティを終了することです。それは堅実なアプローチのように聞こえるのでしょうか、それとも誰かが私にそのアプローチや別のアプローチの実装を指摘することはできますか?
おかげ
編集:
スタックは非常に簡単です。リスト(友人)をクリックし、そのページに移動します。これは、通常のstartActivity呼び出しを使用して、同じページへのインテントと、ユーザーIDを持つインテントを追加し、データベースまたはリモートAPIコールを呼び出してユーザーのデータを取得します。また
は、私は日常私のナビゲーション中meminfoのダンプをチェックしています、ネイティブ対のDalvikについてフォローアップします。私は、dalvikヒープを可能な限り小さく保ち、onStopでリソースをクリーンアップしています。ネイティブヒープははるかに速く成長します。私はどこでもビットマップへのハードリファレンスはありませんが、膨らみから画面上にかなりのドロアブルがあります。これらのドロアブルは、アンドロイドが私の活動を最終的に殺すようになるのでしょうか?私の活動が予防的に破壊されることなく、彼らがOOMにつながると私は最高に感じる。私が理想的であること、手動で私の活動を破壊するだけではなく、それらを停止する(Androidは時にメモリ不足に行うことを主張したように)、および状態を保存してスタックに破壊活動を続けることができれば。再び
編集:
別のキーは、これらの活動は、例えば、それらと混合その他の活動を持っているということです
ユーザー - >ユーザー - >活動 - >ユーザー - >活動のB - 私はスタックに建てを利用したい理由>ユーザー
はそのためですので、私はに行かなければならないとき、私は知っていますユーザーの活動と私がしないとき。
正確にどのようにあなたはユーザーページのあなたの「スタック」を実装していますか? – josephus