フォアグラウンドサービス、コンテンツプロバイダー、およびサービスにバインドしてAIDLを使用してオブジェクトのリストを取得するアクティビティフロントエンドを備えたアプリを作成しています。このサービスは機能し、データベースを更新します。
アクティビティを4〜8時間以上開いたままにして、電話(Nexus One)の設定の下にある[サービスの実行]セクションに移動すると、異常に大量のメモリが使用されていることが示されます(〜42MB)。
漏れがあると思います。ヒープメモリを確認すると、ヒープサイズが取得されます:〜18MB、〜2MBが割り当てられ、〜16MBが解放されます。Eclipse MATでhprofを分析することは問題ないように思われます。これにより、スタックでメモリがリークしていると理論化できます。これも可能ですか?もしそうなら、リークを停止または調査するために何ができますか?androidの「RunningServices」セクションで報告されたメモリ使用量は正しいですか(私はそうだと思います)?
別の注意:UIが起動していない場合(サービスのみが実行されている場合)、この問題を再現できませんでした