wjtologin 2015-02-05 07:09 采纳率: 0%
浏览 2416

Android。在无限循环的线程中创建Message对象,无限出现GC调用。

我在Android开发中。开启了一个线程,这个线程是无限循环的。并且在这个线程里,我通过创建Handle的Message对象,然后handler.sendMessage(msg)。可是这样一来,LOGCat上就一直出现GC_CONCURRENT。请问我该怎么修改代码,或者用哪种方式才能即实现功能,又能减少GC的调用。
具体代码如下:
//线程
private class getData_thread extends Thread {
private Handler handler;
public read_thread(Handler h) {
this.handler = h;
}
Message msg = null;
@Override
public void run() {
while (READ_FLAG) {
msg = Message.obtain();
msg.obj = getData();
handler.sendMessage(msg);
super.run();
}
}
}

private static class dataHandler extends Handler{

@Override
public void handleMessage(Message msg) {
if (msg.obj != null) {
disposeData((byte[]) msg.obj);
}

super.handleMessage(msg);
}
}


  • 写回答

4条回答 默认 最新

  • danielinbiti 2015-02-05 07:35
    关注

    无限循环...太恐怖了。先从业务上分析,另外看getData对象多大

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器