【发布时间】:2018-04-04 08:00:43
【问题描述】:
我想对我的 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 中,我的被调用者(被调用者)仍然持续驻留在 RAM 中。
3 小时后,当我进入 'adb sehll dumpsys 活动 oom | grep my package name' 查看内存状态,显示这一行。
Proc #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){
}
}
【问题讨论】:
标签: android ram ondestroy bindservice