看板 AndroidDev 關於我們 聯絡資訊
感謝您的回答 我是比較想嘗試用方法一的方式 但是 createTab 中會需要用到 getSupportActionBar() 我之前用都是在類別直接 extends SherlockActivity 就可以使用了 但是 MyAsyncTask 已經 extends AsyncTask 了所以不知道要怎麼讓 getSupporActionBar()使用 對不起我沒有學過 JAVA,物件導向的觀念可能不是很熟 ※ 引述《MosilW (Mosil)》之銘言: : 從您的內容來看,AsyncTask 是另外一個 class : 這樣一來可以分成兩個方向 : 一、 : 把後續要做的動作跟所需要的物件一併傳入 AsyncTask : 讓 AsyncTask 得以在 onPostExecute() 中執行 : 二、繼承 : AsyncTask class 裡的 doInBackground() 寫好 : 在 class A 中再寫一個 private class extend this AsyncTask : 然後把 onPostExecute() 寫在這裡 : 這樣就可以解掉您的問題了 : ※ 引述《t3825288 (猩爺)》之銘言: : : 請問要如何得知 AsyncTask 的工作已經做完了呢? : : 因為我想在 class A 中 呼叫 AsyncTask 抓取網頁 : : 然後等結果擷取完後解析網頁裡面的頁數資訊 : : 再利用 actionbarsherlock 來 addTab() : : 網路上的方法有些是把 AsyncTask 的 class 寫在 class A 裡面 : : 但是我希望把他們兩個分開寫在不同的 .java 檔 : : 也有人是把參數傳進去建構子,然後在 AsyncTask 那邊做處理 : : 但是我好像沒辦法在 AsyncTask 中使用 actionbarsherlcok 的相關函式 : : 於是我想到的辦法是在 class A 中建構一個函式 createTab() 用來 addTab() : : 然後在 onPostExecute() 中呼叫這個 createTab() : : 但是執行後還是會當機 : : 在網路上查到另外一個 AsyncTask.getStatus() 的東西 : : 不過還是不知道如何應用在上面 : : 這幾天一直查都查不到方法 : : 實在是招窮了,懇求板上的大大們救救小弟吧... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.216.96
popcorny:不知道你為什麼不考慮用inner class而一定要分兩個.java? 06/04 21:34
jerrysky:推樓上!在class A裡面直接用inner class 繼承AsyncTask 06/04 22:24
t3825288:因為我想在class B,class C 都用的到 AsyncTask 06/04 23:31
t3825288:所以想說把他額外寫出來這樣就可以都用到了 06/04 23:31
popcorny:可以參考這個作法 06/05 00:13
popcorny:忘了貼網址 http://goo.gl/CFS5n 06/05 00:13
KeySabre:樓上給的連結裡用的方式很好 06/05 01:29
KeySabre:我之前偷懶都是在asynctask裡用一個變數放外面給的runnab 06/05 01:31
KeySabre:le, 然後在onPost裡叫THREAD_POOL_EXECUTOR執行該runnabl 06/05 01:31
KeySabre:e 06/05 01:31
KeySabre:然後runnable裡面跟UI相關的部份再用runOnUiThread, 或se 06/05 01:34
KeySabre:ndMessage給使用main looper的handler... 06/05 01:34
MosilW:其實用方法二可以保留很多彈性 06/05 07:35
MosilW:若是您希望用方法一,那您可能要了解那個函式得怎麼用 06/05 07:36
MosilW:像這邊,您可以傳入activity進去 06/05 07:37
MosilW:然後用activity.getSupportActionBar() 06/05 07:38