0

我创建了一个服务,查看正在运行的服务,我发现它需要 15MB 内存!作为一个整体简单的服务,它对我来说似乎真的很奇怪,所以我想知道在哪里看,以便发现为什么要占用这么多内存(请注意,我只是在谈论服务,我确保关闭活动)

服务的任务是定期下载 rss 提要并在出现新文章时更新 sqllite 数据库。由于需要互联网连接,因此服务也使用了网络侦听器。这些是属性:

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

您需要的是一个内存分析工具,它可以向您展示什么占用了内存。看看这篇来自 Google 的关于Android 内存分析的文章。特别要仔细查看关于MAT的部分。

于 2012-09-06T17:39:54.620 回答