作者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/m.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