サービスを作成しましたが、実行中のサービスを見ると、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{
...
}
}