作者uu8320 (asss)
看板AndroidDev
标题[问题]AsyncTask与GoogleMap使用上的问题
时间Mon Aug 1 01:22:08 2016
小弟最近刚学写App,所以蛮多观念都不懂得
据我了解AsyncTask主要动作是在doInBackground()方法执行
然後在 onPostExecuted() 上可以更改UI,但没办法动到全域变数。
现在利用Mysql资料库的地址然後用GoogleMap将地址一一标记出来
现在已经成功把所有地址转成经纬度(是使用Json解析的方式)所以有用到AsyncTask
我一开始的想法是在onPostExecuted()里面把经纬度存至全域变数的String阵列里面
再用GoogleMap.addMarker一一将标记点加上去,不过当然是失败了。
所以想请问一下 不知道有没有比较好的方法可以解决??
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.165.35.187
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1469985730.A.EA8.html
1F:推 ckvir: 不是可以传参数进去吗 08/01 01:34
2F:→ ssccg: 你的了解是错的,Java没有全域变数,区域变数才是不能动的 08/01 04:17
3F:→ ssccg: AsyncTask的重点在它是async,你的问题比较可能出在没弄清 08/01 04:25
4F:→ ssccg: 楚执行顺序,在task跑完前就去拿资料 08/01 04:26
5F:推 spider8320: 所以只需要等执行序跑完再去拿值就ok?? 08/01 08:58
6F:推 spider8320: 要怎麽知道asynctask已经执行完呢 08/01 09:08
7F:推 terryyamg: onPreExecute(执行前)->onProgressUpdate(执行中显示ui 08/01 09:41
8F:→ terryyamg: ) and doInBackground(背景作业)->onPostExecute(执行 08/01 09:42
9F:→ terryyamg: 完) 08/01 09:42
10F:推 terryyamg: Google搜寻AsyncResponse 把取得的值回传就好了 08/01 09:47
11F:→ uu8320: 不好意思在请问一下 我现在已经可以用楼上大大的方法拿到 08/01 16:24
12F:→ uu8320: 我是用这篇网站的方法 ppt.cc/vfj1v 08/01 16:27
13F:→ uu8320: 结果写完发现 还是不知道在onMapReady上使用这些值 08/01 16:29
14F:→ uu8320: 或者是有没有方法可以判断说AsyacTask已经跑完? 08/01 16:33
17F:→ uu8320: 可以了 谢谢!! 08/01 18:06
18F:推 benedict76: 用asynctask 要小心旋转的问题,旋转还要更新ui的话, 08/04 01:44
19F:→ benedict76: 要特别处理 08/04 01:44