如何从AsyncTask Android获取字符串
我最近开发了一个姜饼应用程序。现在我想把它送到蜂巢。 现在我的异步任务有问题了。我想将信息(例如字符串)从asynktask类传递到活动,我从开始。如何从AsyncTask Android获取字符串,android,android-asynctask,android-3.0-honeycomb,Android,Android Asynctask,Android 3.0 Honeycomb,我最近开发了一个姜饼应用程序。现在我想把它送到蜂巢。 现在我的异步任务有问题了。我想将信息(例如字符串)从asynktask类传递到活动,我从开始。 很抱歉,这是我第一次使用asynctasks,所以我还不太了解它。将AsyncTask用作内部类,并在外部类中声明一个调用AsyncTask的字符串。在AsyncTask中,分配在外部类中声明的字符串的值。Rasel建议这是一个解决方案,您也可以简单地使用getter setter方法,而且它的范围是整个项目 public static Strin
很抱歉,这是我第一次使用asynctasks,所以我还不太了解它。将AsyncTask用作内部类,并在外部类中声明一个调用AsyncTask的字符串。在AsyncTask中,分配在外部类中声明的字符串的值。Rasel建议这是一个解决方案,您也可以简单地使用getter setter方法,而且它的范围是整个项目
public static String getStr() {
return str;
}
public static void setStr(String str) {
GlobalVariable.str = str;
}
像这样使用它
GlobalVariable.setStr("this is test");
为了获得它的价值,只需使用
String s = GlobalVariable.getStr();
将返回上次更新的值。是,解决方案是将
AsynkTask
作为活动的内部类
,如果通过将字符串
传递给活动
意味着您希望将文本视图
的文本设置为该字符串
,则可以在onPostExecute()中执行此操作
您的AsynkTask
方法
假设您的
doInBackground()
方法执行一些处理并构造一个String
,然后返回该String
,并将其传递给onPostExecute()
方法,它在UIThread
上运行,可以修改您的活动UI。方法execute返回AynscTask本身,您需要调用方法AsynkTask.get(),以获取任务的结果(当然,如果结果类型是字符串;):
我认为拉塞尔的提议是不能接受的。因为Asynctask有不同的线程,所以有时候在Asynctask之后打印任何全局变量都可以在Asynctask之前完成。所以它有时会得到空的或不想要的结果。我应该把这些放在哪里?我想我必须在onPostExecute()方法中完成。。但是没有什么是有效的。我不能把我的异步任务放在同一个班级里。我有活动,可以吗?因为我可以扩展Activity或Asynctask…当我问自己完全相同的问题时,这就是我问题的解决方案。谢谢这个答案应该被认为是正确的答案。请这样做:-)
String output = new YourTask().execute(Params).get();