[问题]AsyncTask与GoogleMap使用上的问题

楼主: uu8320 (asss)   2016-08-01 01:22:08
小弟最近刚学写App,所以蛮多观念都不懂得
据我了解AsyncTask主要动作是在doInBackground()方法执行
然后在 onPostExecuted() 上可以更改UI,但没办法动到全域变量。
现在利用Mysql数据库的地址然后用GoogleMap将地址一一标记出来
现在已经成功把所有地址转成经纬度(是使用Json解析的方式)所以有用到AsyncTask
我一开始的想法是在onPostExecuted()里面把经纬度存至全域变量的String阵列里面
再用GoogleMap.addMarker一一将标记点加上去,不过当然是失败了。
所以想请问一下 不知道有没有比较好的方法可以解决??
作者: ckvir (ckvir)   2016-08-01 01:34:00
不是可以传参数进去吗
作者: ssccg (23)   2016-08-01 04:17:00
你的了解是错的,Java没有全域变量,区域变量才是不能动的AsyncTask的重点在它是async,你的问题比较可能出在没弄清楚执行顺序,在task跑完前就去拿资料
作者: spider8320 (vasn)   2016-08-01 08:58:00
所以只需要等执行序跑完再去拿值就ok??要怎么知道asynctask已经执行完呢
作者: terryyamg (少说多做 多说多错)   2016-08-01 09:41:00
onPreExecute(执行前)->onProgressUpdate(执行中显示ui) and doInBackground(背景作业)->onPostExecute(执行完)Google搜寻AsyncResponse 把取得的值回传就好了
楼主: uu8320 (asss)   2016-08-01 16:24:00
不好意思在请问一下 我现在已经可以用楼上大大的方法拿到我是用这篇网站的方法 ppt.cc/vfj1v结果写完发现 还是不知道在onMapReady上使用这些值或者是有没有方法可以判断说AsyacTask已经跑完?
作者: terryyamg (少说多做 多说多错)   2016-08-01 17:11:00
http://i.imgur.com/YeTQikA.jpg 大概像这样你流程应该做成这样 http://i.imgur.com/WP4eiKp.jpg
楼主: uu8320 (asss)   2016-08-01 18:06:00
可以了 谢谢!!
作者: benedict76 (ben)   2016-08-04 01:44:00
用asynctask 要小心旋转的问题,旋转还要更新ui的话,要特别处理

Links booklink

Contact Us: admin [ a t ] ucptt.com