当前位置:编程学习 > wap >>

求助,Android ListView notifyDatasetChanged刷新太快,UI无响应。。

现在有个需求,在Android中,做一个类似迅雷那样的下载界面,要求在ListView中显示进度条,还要有一个控制按钮(开始,停止,暂停)。
现在用Thread+Handler来更新ListView的进度条(ListView自定义一个Adapter,继承自ArrayAdapter),
具体是先通过handler来改变数据源中的进度值,然后通过adapter的notifyDatasetChanged实现界面更新。

但是进度条更新的过程中,0.5秒刷新一次,这时会导致那个按钮基本上没法响应。


求助如何解决。。。 --------------------编程问答-------------------- 这个只能把刷新的动作移动到另外一个线程里面做了,用surfacview去绘制UI吧 --------------------编程问答-------------------- 有没有方法指定handler使用非activity的消息队列容器。 --------------------编程问答-------------------- 可以的,你要自己建立一个thread来处理。
如果你要在你的service的thread中使用handle,那么你要继承handlethread这个类去写,并且在这个thread里面去申请一个handler出来,然后用这个handler去post。
大致的代码如下:
Handler m_handler=null;
HandlerThread m_thread = new HandlerThread("PowerManagerService") {
  protected void onLooperPrepared() {
  m_handler=new Handler();
  m_handler.postDelayed(run, 5000);
  }
  };
  mHandlerThread.start()

--------------------编程问答-------------------- 楼主怎么解决的?
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,