作者quare96 (光怪鹿离)
看板AndroidDev
标题[问题] ListView非同步更新的实作
时间Tue Jan 25 21:41:23 2011
开发层: 应用
问题:
问题的起头只是因为我刚开始写了一个需要接API并用ListView输出的小程式,
可是随後我发现只要行动网路不够稳的时候连接API会让整个程式画面在输出
前暂时卡住。
於是稍微检视一下,问题主要出现在我把查询动作写在onCreate中,
这麽一来就代表了他会等到查询动作结束後才会输出画面,
我稍微参考了一下官网的LifeCycle,提到Activity在走到onStart时代表了
画面已经输出,於是我把查询动作移进了onStart....
不过结果是一样的,查询动作还是跑在画面输出前
接着我在逛了一下官方的开发者论坛,有人提到了因为Activity从onCreate到
onDestroy基本上是同一个执行绪在处理,所以无论怎麽移原则上都没办法改变
这个结果,建议分裂出一个执行绪同步去处理
so,我就乖乖的照着做了,New了一个Thread去处理,把查询写在run里面之後
(Thread.start()摆在onCreate中)
开断点debug下去看,顺序是有达到我的要求..
不过问题来了,查询完要将结果写入ListView时它竟然跳出Exception!!!
我看了一下错误讯息...是一串英文(废话) 大意是说不能用多出来的执行绪去
操作原本Layout上的物件
看到差点没翻桌了...有人能给点建议吗?
参考: 官网文件及论坛
补充说明: 其实用BuittonClick去触发更新ListView也不是不行啦...但就是有种
输掉的感觉XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.47.154