看板 AndroidDev 關於我們 聯絡資訊
各位前輩好! 最近在練習自己寫一個程式藉由JSON取得資料從JSON取得的資料放入ListView。 目前我是利用AsyncTask在 doInBackground 上處理JSON資料。 處理過後的資料利用我自己建立的VO class。 自己寫一個BaseAdapter處理ListView裡面Item。 最後在OnPostExectue setAdapter 動態更新ListView。 目前寫到這裡都有達到我想要的目的。 可是後來想想我如果在APP執行途中新增JSON內容。 AsyncTask好像就不會動態更新。 上網查一下資料好像可以利用Service 背景執行寫一個定時更新的服務。 我朋友也告訴我要利用Handler處理UI畫面不要寫在AsyncTask裡面。 可能功力還不太夠我把我的MainActivity裡面寫入AsyncTask和BaseAdapter...。 沒有而外再開Class寫。 寫要寫Service的時候發現不太會處理數值也不太會改寫。 有找到寫一個Service 裡面可以用TimerTask。 請問我是要利用TimerTask處理JSON資料。 還是使用TimerTask去處理我的AsyncTask? 最近腦子卡死在這裡有一點不知道要如何下手。 本來是寫一個Therd去去算秒數時間到了執行AsyncTask再利用Handler處理畫面。 可是會發生Runtime Exception。 說要把handler static 不然會發生overload。 又看了很多相關文章越看越一頭霧水。 自己覺得這是有關於觀念問題但是身邊沒什麼人可以問。 我朋友只說只能指點我這些剩下靠我自己。 只好PO文求助大家。 另外如果有關於寫作技巧或是方式有推薦的書籍可以閱讀? 希望前輩可以指導一下寫作方式或技巧。 感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.46.180 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1443626225.A.48F.html ※ 編輯: benntqoo (59.126.46.180), 09/30/2015 23:19:07
A4P8T6X9: 可以考慮用 Iterface 去更新主畫面,覺得不錯用。 09/30 23:53
A4P8T6X9: interface... 09/30 23:54
sasoman: 定時可考慮用alarmManager寫在service內做 10/01 00:06
givemepass: 不太懂 onpostexecute就是在mainthread了 為何還要用h 10/01 10:02
givemepass: andler 10/01 10:02
givemepass: 如果你新增json資料就去刷新adapter就好 其實不用實做 10/01 10:03
givemepass: timer 10/01 10:03
givemepass: 另外asynctask只能用一次而已 所以你要繼續用就要再開 10/01 10:08
givemepass: 一次 10/01 10:08
我也不太理解為什麼要再開Handler處理UI畫面 我覺得AsyncTask裡面就可以處理了 可是我朋友這樣告訴我害我完全一團亂不知道該怎樣下手 被他限制卡死了ORZ 感謝give大提醒 我只要定期刷新AsyncTask一樣在OnPostExecute做UI處理好像就可以解決了 ※ 編輯: benntqoo (59.126.46.180), 10/01/2015 10:16:11 ※ 編輯: benntqoo (59.126.46.180), 10/01/2015 10:18:43 ※ 編輯: benntqoo (59.126.46.180), 10/01/2015 10:19:40
mshockwave: 最簡單就是在Thread裡抓資料處理資料 在用handler更新 10/01 10:37
mshockwave: UI 但是Thread因為不是跟Activity生命週期綁一起 所以 10/01 10:37
mshockwave: 如果需要的話 可以用Service + Thread 詳情可以參考 10/01 10:38
mshockwave: Efficient Android Threading 第11章 10/01 10:39
teeen: notifydatachange 10/02 15:41
pkmilk: 推薦歐萊禮的Android高效能多執行緒 解說很詳細 10/03 11:30