求助,Android ListView notifyDatasetChanged刷新太快,UI无响应。。
现在有个需求,在Android中,做一个类似迅雷那样的下载界面,要求在ListView中显示进度条,还要有一个控制按钮(开始,停止,暂停)。现在用Thread+Handler来更新ListView的进度条(ListView自定义一个Adapter,继承自ArrayAdapter),
具体是先通过handler来改变数据源中的进度值,然后通过adapter的notifyDatasetChanged实现界面更新。
但是进度条更新的过程中,0.5秒刷新一次,这时会导致那个按钮基本上没法响应。
求助如何解决。。。 --------------------编程问答-------------------- 这个只能把刷新的动作移动到另外一个线程里面做了,用su易做图cview去绘制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