2011-08-17 64 views
2

我最近开发了一个姜饼应用程序。现在我想把它变成蜂窝状。 现在我的asynctask有问题。我想从asynktask类传递信息(例如一个字符串)到活动,我从它开始。 对不起,这是我第一次使用asynctasks,所以我现在还不知道很多。如何从AsyncTask获取字符串Android

回答

1

使用AsyncTask作为内部类,并在调用AsyncTask.In外部类的外部类中声明一个字符串,asyncTask指定在外部类中声明的字符串的值。

0

RASEL建议就是可以是一个解决方案,你也可以简单地使用的getter setter方法也是它的范围是整个项目

public static String getStr() { 
    return str; 
} 

public static void setStr(String str) { 
    GlobalVariable.str = str; 
} 

使用这样

​​

并获取其值只需使用

String s = GlobalVariable.getStr(); 

这将返回上次更新的值。

+0

我必须把所有这些放在哪里?我以为我必须在onPostExecute()方法中做到这一点..但没有任何工作。 – user878559

+0

我不能在同一班上有我的Asynctask我有活动可以吗?因为我可以扩展活动或Asynctask .... – user878559

2

是,解决的办法是通过传递String,以使您AsynkTaskActivity的内部类,如果Activity你是说你要到例如TextView的文本设置为String你可以做到这一点您的AsynkTaskonPostExecute()方法。

所以我们说,你doInBackground()方法做了一些处理,并构建一个String比它返回String,并把它传递给onPostExecute()方法,它运行在UIThread,并且可以修改您的Activity UI。

+0

谢谢你们! 你帮了我很多!它的工作很好:) – user878559

+0

你应该接受一个答案然后:) –

13

的方法执行返回AynscTask本身,你需要调用方法AsynkTask.get(),以获取任务的结果(当然,如果结果类型为字符串;)):

String output = new YourTask().execute(Params).get(); 
+0

这是我问自己完全相同的问题时,我的问题的解决方案。谢谢! –

+1

这个答案应该被接受为正确答案。请这样做:-) – Piscean

+0

非常感谢。 :) – Clindo

0

我认为Rasel的报价是不可接受的。因为Asynctask有不同的线程,所以有时会在Asynctask之前完成Asynctask之后打印任何全局变量。所以它有时会出现空或不需要的结果。