1. 当监听Accelerometer Sensor的时候,会出现内存泄露的情况我们的应用架构有两个activity(A,B)。通过A来启动B,在B里面注册监听重力感应事件。但是当B退出的时候,从ddms看B对应的内存没有释放比如一开始A的内存占2M,启动B后占内存7M,而关闭B后内存仍为7M(如果不注册重力感应事件,内存可以回到2M)。多次启动B后就会出现out of memory异常相关代码如下:public void onResume()
{
super.onResume();
if(mGlobal.mSensor)
{ Sensor sensor = mSensor.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensor.registerListener(mSensorListener, sensor, SensorManager.SENSOR_DELAY_UI);
}
}
@Override
public void onPause()
{
super.onPause();
if(mGlobal.mSensor)
{
mSensor.unregisterListener(mSensorListener);
} }2. 应用会出现在途中突然变卡的情况,过一段时间才能恢复应用中有一个线程用来实时解264码流,一开始解码一帧大概在30ms左右,运行一段时间(时间长度不固定)后突然会增加到100ms以上(在这段时间GC也会非常慢,有时候超过1秒),过一段时间又恢复30ms如果把这段解码换成固定计算量的for循环,也会出现同样的情况,因此和解码本身无关跟踪了内存好像也没有内存泄露,不知道是什么原因引起的
多谢
{
super.onResume();
if(mGlobal.mSensor)
{ Sensor sensor = mSensor.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensor.registerListener(mSensorListener, sensor, SensorManager.SENSOR_DELAY_UI);
}
}
@Override
public void onPause()
{
super.onPause();
if(mGlobal.mSensor)
{
mSensor.unregisterListener(mSensorListener);
} }2. 应用会出现在途中突然变卡的情况,过一段时间才能恢复应用中有一个线程用来实时解264码流,一开始解码一帧大概在30ms左右,运行一段时间(时间长度不固定)后突然会增加到100ms以上(在这段时间GC也会非常慢,有时候超过1秒),过一段时间又恢复30ms如果把这段解码换成固定计算量的for循环,也会出现同样的情况,因此和解码本身无关跟踪了内存好像也没有内存泄露,不知道是什么原因引起的
多谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货