最近做一个应用,log一直在打印GC_CONCURRENT freed 433k,7% free 7975K/8564K,paused 12ms+4ms, total 70ms类似这样的信息。
这个应用在一直使用的情况下是没有问题的,可是锁屏大概1分钟之后再回来,一种情况是应用直接没有响应了,另一种情况是等很久(大概10秒左右)又能响应,等它能响应回来后,又可以正常工作了。
真是不知道是怎么回事,从log信息看到虽然UI上面没有响应,可是后台的service还在正常工作的。
是内存泄露吗?因为从上面的GC_CONCURRENT看出,我只有7%的内存是free的,还是什么别的原因引起的?
请各位不吝赐教,谢谢
这个应用在一直使用的情况下是没有问题的,可是锁屏大概1分钟之后再回来,一种情况是应用直接没有响应了,另一种情况是等很久(大概10秒左右)又能响应,等它能响应回来后,又可以正常工作了。
真是不知道是怎么回事,从log信息看到虽然UI上面没有响应,可是后台的service还在正常工作的。
是内存泄露吗?因为从上面的GC_CONCURRENT看出,我只有7%的内存是free的,还是什么别的原因引起的?
请各位不吝赐教,谢谢
解决方案 »
- 移动app开发的选择
- 问:如何修改android系统默认时区
- Android开发中在view中怎样指定控件的位置?
- jsoup问题
- 继承ImageView的类,无法把ImageView对象转换过去
- 安卓通过。netWebservice 获取json数据 在listview显示不出来
- 想购买一个android app的所有权利,需要怎么做
- ListView 点击一个按钮后,出现滑动
- 请教原安卓6代码适配到安卓9怎么快
- Android Studio中NDK开发C/C++代码无语法提示,无法debug或标红的问题。
- 求救!!Android mediaplay的问题
- android4.2 dialog被隐藏问题
public void exit() {
Log.e(TAG, "exit in myapplication");
for (Activity activity : activityList) {
Log.e(TAG, activity.getLocalClassName()+ " finish");
activity.finish();
}
System.exit(0);
}
这个函数,可是发现执行finish()方法后activity的onDestroy方法并没有被调用,这是怎么回事啊?
activity的各种状态类似一个状态机一样。finish后,并不是直接调用onDestory,而是activityManagerservice调度的,然后给activityThread发的消息,但是进程退出了,因此无法执行
但内存泄露也不应该导致UI不响应,你说呢?会不会是其它原因?
你有没有在onResume或者onStart里执行费时的事?
另外是应用一起来会有一个service一直在后台运行,控制媒体播放用的
那就是ANR啊,执行按键的处理时间长了
Android ANR,就是别把费时的操作放在主线程里
我是做一个DLNA的手机控制端,activity显示手机本地的媒体列表,有一个service是用来实现媒体播放控制的。然后点击媒体列表的某一项的时候就会弹出一个popupwindow,这个popupwindow上面是控制媒体播放的一些按键,比如pause/next这些。点击这些按键的时候就发一个广播给service,service收到广播之后就执行那些控制动作。请问这是哪里出了差错啊?