我正在開發一個應用程序,我需要將asynctask的onPostExecute方法的結果的值發送到前一個活動,即aync任務被稱爲.pls放一些代碼。 Anyhelp認識如何將asynctask onpostexecute方法的結果傳遞給父活動android
4
A
回答
8
兩種方式:
延伸的AsyncTask在父活動如果我是你的類的PARAM
- 聲明類,我會遵循第一個選項。
看DOCS:class MyActivitySubclass extends Activity { function runOnPostExecute(){ // whatever } private class MyTask extends AsyncTask<Void, Void, Void> { void doInBackground(Void... params){ // do your background stuff } void onPostExecute(Void... result){ runOnPostExecute(); } } }
注1
放置在體內的功能
onPostExecute
代碼是否已在活動線程上運行,你應該只提到this
關鍵字導致MyTask.this
而不是MyActivitySubclass.this
1
onPostExecute方法在主UI線程上被觸發,所以在那裏完成的任何事情都已經在AsyncTasks調用者上。
http://developer.android.com/reference/android/os/AsyncTask.html
2
那麼,如果您的AsyncTask是一個內部類,你可以簡單地從onPostExecute()
調用您的活動的方法:
public class MyActivity extends Activity {
public void someMethod(String someParam) {
// do something with string here
}
public class InnerTask extends AsyncTask<...> {
protected void onPostExecute(result) {
someMethod(Send parameters);
}
}
}
1
火在OnPostExecute的事件。
0
這是Marek Sebera的回答,他指出要使用處理程序。爲了使代碼簡單直觀,請使用界面。這不是外在的概念,我們一直使用回調函數(例如:OnClickListner等)。代碼會看起來像這樣。
public class InnerTask extends AsyncTask<...>
{
interface ResultHandler
{
void gotResult(<> result);
}
private ResultHandler myResult;
//constructor
public InnerTask(....params...,ResultHandler callback)
{
...
this.myResult = callback;
}
protected void onPostExecute(<>result)
{
...
myResult.gotResult(result);
}
}
public class MyActivity extends Activity implements InnerTask.ResultHandler
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
//do something
//if you want the InnerTask to execute here
InnerTask i = new InnerTask(....params...,this); //send 'this' as parameter
i.execute();
}
@Override
public void gotResult(<> result)
{
//from onPostExecute
}
}
如果我們要使用在多個網站上使用相同AsynTask類,我們可以使用這種類型的實現,而不是使用嵌套類實現。
相關問題
- 1. 將活動結果傳遞給祖父母活動(非父母)
- 2. AsyncTask - 如何在onPostExecute之後將值傳遞迴活動類?
- 3. 如何將布爾值傳遞給Android Studio中的onPostExecute方法?
- 4. 將AsyncTask結果傳遞給其他活動
- 5. 如何將asynctask傳遞給android中的另一個活動?
- 6. 如何將結果從asynctask返回給android中的活動?
- 7. 將孩子活動的結果傳遞給父母標籤活動
- 8. 如何將值傳遞給AsyncTask Android
- 9. 如何將參數傳遞給Android AsyncTask
- 10. 將參數從AsyncTask傳遞給方法
- 11. 將Lat/Lng傳遞給onPostExecute在android
- 12. Android AsyncTask:開始新活動onPostExecute()
- 13. Asynctask:將值從doInBackground傳遞到onPostExecute
- 14. 爲什麼我的AsyncTask doInBackground()沒有將值傳遞給onPostExecute()?
- 15. 將活動值傳遞給Android webview的Javascript方法
- 16. 將arraylist從asynctask傳遞給調用它的方法android
- 17. android AsyncTask - 無法執行onPostExecute方法
- 18. Android java讀取文件將結果傳遞給方法
- 19. 如何將父活動的價值傳遞給子活動和子活動退出,刷新父活動
- 20. 如何將數組作爲方法結果傳遞給Microsoft NAV?
- 21. 如何將查詢結果傳遞給另一個方法
- 22. LayoutInflater的AsyncTask onPostExecute方法
- 23. Android AsyncTask,從UI活動傳遞視圖
- 24. 來自asynctask類的onPostExecute方法中的呼叫活動
- 25. 將活動值傳遞給片段android
- 26. 將SparseArray的結果傳遞給另一個活動
- 27. 如何將結果傳遞給MainActivity?
- 28. 如何將對象傳遞給活動?
- 29. 如何將字符串傳遞給AsyncTask doInBackground,並返回ArrayList <String> onPostExecute
- 30. android-將參數傳遞給Asynctask
OP的問題顯然是在單獨的文件中聲明爲公共類的AsyncTask子類。他已經知道'onPostExecute'用於什麼了 – 2012-03-28 14:46:54