作者t3825288 (猩爺)
看板AndroidDev
標題Re: [問題] asyncTask 結果返回的問題
時間Tue Jun 4 21:13:02 2013
感謝您的回答
我是比較想嘗試用方法一的方式
但是 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
1F:推 popcorny:不知道你為什麼不考慮用inner class而一定要分兩個.java? 06/04 21:34
2F:推 jerrysky:推樓上!在class A裡面直接用inner class 繼承AsyncTask 06/04 22:24
3F:→ t3825288:因為我想在class B,class C 都用的到 AsyncTask 06/04 23:31
4F:→ t3825288:所以想說把他額外寫出來這樣就可以都用到了 06/04 23:31
5F:推 popcorny:可以參考這個作法 06/05 00:13
7F:→ KeySabre:樓上給的連結裡用的方式很好 06/05 01:29
8F:→ KeySabre:我之前偷懶都是在asynctask裡用一個變數放外面給的runnab 06/05 01:31
9F:→ KeySabre:le, 然後在onPost裡叫THREAD_POOL_EXECUTOR執行該runnabl 06/05 01:31
10F:→ KeySabre:e 06/05 01:31
11F:→ KeySabre:然後runnable裡面跟UI相關的部份再用runOnUiThread, 或se 06/05 01:34
12F:→ KeySabre:ndMessage給使用main looper的handler... 06/05 01:34
13F:推 MosilW:其實用方法二可以保留很多彈性 06/05 07:35
14F:→ MosilW:若是您希望用方法一,那您可能要了解那個函式得怎麼用 06/05 07:36
15F:推 MosilW:像這邊,您可以傳入activity進去 06/05 07:37
16F:→ MosilW:然後用activity.getSupportActionBar() 06/05 07:38