startService()和stopService()以及内存..发生了什么?

时间:2011-07-09 17:48:39

标签: android

这只是一个关于android的一般性问题,没有特定的用例。由于我目前仍在学习该平台,因此我一直在做一些experimentation服务。

我创建了一个名为TestService的类来扩展服务。我没有对代码进行任何更改,也没有在服务中做任何事情。从本质上讲,它只是一项空服务。这就是我的意思:

    public class TestService extends Service {
    @Override
        public IBinder onBind(Intent intent) {      
            return null;
        }
    }

使用以下代码,我在我的活动中启动服务:

    Intent sIntent = new Intent();
    sIntent.setClassName("com.mytestapp.android.servicetest", 
            "com.mytestapp.android.servicetest.TestService");
    startService(sIntent);

为了阻止它,我打电话给:

    stopService(sIntent);

现在要监控我的服务是否真正启动,我通过转到设置 - >访问了android提供的运行服务列表。应用程序 - >运行服务。好吧,它有效..服务出现在那里。

然而,我注意到的一件事是,每次我停止并再次启动我的服务,服务使用的内存似乎是增加(如运行的服务信息所示)。在做了大约二十次之后,服务使用的内存几乎增加了原来的50%!

我发现这很奇怪,我想知道是否有人可以解释这里似乎发生了什么?这是正常的吗?

1 个答案:

答案 0 :(得分:1)

  

这是正常的吗?

最有可能的是,那些Service对象尚未被垃圾收集。