0

サービスを作成しましたが、実行中のサービスを見ると、15MBのメモリが必要であることがわかります。全体的にシンプルなサービスなので、私には本当に奇妙に思えます。そのため、なぜ多くのメモリが使用されるのかを知るために、どこを見ればよいのかを知りたいと思いました(サービスについて話しているだけなので、必ず閉じてください。アクティビティ)

サービスのタスクは、定期的にrssフィードをダウンロードし、新しい記事が存在する場合はsqllitedbを更新することです。インターネット接続が必要なため、サービスはネットワークリスナーも利用します。これらは属性です:

private Timer timer;
private MyDbHelper db;
private NetworkChangesReceiver networkListener; //a broadcast receiver for network state
private NotificationManager notifyManager;
private final NewsServiceB binder = new NewsServiceB();
private SharedPreferences prefs;

これはバインダークラスです(メインアクティビティには[今すぐ確認]ボタンがあるので、バインド可能なサービスが必要です):

class NewsServiceB extends Binder{
public void downloadRss() throws IOException{
   ... 
    }
 }
4

1 に答える 1

2

必要なのは、何がメモリを占有しているかを示すメモリ分析ツールです。Android のメモリ分析に関するGoogle の記事をご覧ください。特に、 MATのセクションをよく見てください。

于 2012-09-06T17:39:54.620 に答える