作者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