楼主:
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跑完前就去拿资料
所以只需要等执行序跑完再去拿值就ok??要怎么知道asynctask已经执行完呢
作者:
terryyamg (少说多做 多说多错)
2016-08-01 09:41:00onPreExecute(执行前)->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楼主: uu8320 (asss) 2016-08-01 18:06:00
可以了 谢谢!!
用asynctask 要小心旋转的问题,旋转还要更新ui的话,要特别处理