我想对我的 android 包进行内存测试。
在我的包中,只有一项非常简单的服务。
该服务仅由另一个包中的 bindService 启动。(不是启动服务)
之后,另一个包(包 1)向我的包调用 bindService,包终止。然后我的包的日志如下。
04-04 16:13:06.962 5468-5468/memorytestapp I/: @onCreate
04-04 16:13:06.966 5468-5468/memorytestapp I/: @onBind
04-04 16:13:12.221 5468-5468/memorytestapp I/: @onUnbind
04-04 16:13:12.258 5468-5468/memorytestapp I/: @onDestroy
调用 onDestroy 后,我希望我的包在一定时间后不会驻留在 RAM 中。
然而,即使包 1(调用者)在终止后没有立即驻留在 RAM 中,我的 packagee(被调用者)仍然持续驻留在 RAM 中。
3小时后,当我进入'adb sehll dumpsys activity oom | grep my package name' 来检查内存状态,它显示了这一行。
过程#5:cch B/ /CEM trm:0 5468:memorytestapp/u0a227(cch-empty)
虽然我的包处于缓存状态,但它仍然持续驻留在 RAM 中。即使我在 onDestroy 插入代码“stopService 或 stopSelf”,它也具有相同的状态!
在调用 onDestroy 后,我真的希望我的包不驻留在 RAM 中。
对这种情况有什么意见或评论吗?
真诚的,洛根。
我的包的源代码如下。
public class TestService extends Service {
@Override
public void onCreate(){
super.onCreate();
}
@Override
public void onDestroy(){
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public boolean onUnbind(Intent intent) {
return true;
}
@Override
public void onRebind(Intent arg0){
}
}