我正在开发一个应用程序,我需要将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