这是我的问题。我创建了一个asyncTask链接到我的数据库并使用JSON发送和接收信息。AsyncTask - 如何在onPostExecute之后将值传递回活动类?
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
progressDialog.dismiss();
returnValues = dataParsed.split("\\s+");
mainActivity.getValue(this is the function that calls anotherfunction in
asyncTask)
Log.v("ARRAY LENGTH", String.valueOf(returnValues.length));
}
public String[] returnmyString(){
//return mySaveData;
Log.v("ARRAY LENGTH 2", String.valueOf(returnValues.length));
return returnValues;
}
我在基于活动的类中创建asyncTask对象,然后调用该object.execute。我的问题是,我的代码将继续运行,一旦调用object.execute并且其中一行在执行完所有代码之前调用asyncTask类中的函数。
process.activitySave(1); //<---Process is the object for the asyncTask class
process.ContextSave(this,ServerURLSource,myParameters);
process.execute()
changedData = process.returnmyString(); //<-- this is the line of code that gets implemented that returns a null value
我试图创建在的AsyncTask类Mainactivity对象,然后调用一个函数,然后当我这样做检索的价值,但我的应用程序崩溃。任何帮助,将不胜感激。我想在mainactivity类中添加某种监听器,因为它似乎无法在我的asyncTask类中引用mainactivity类中的任何函数。
这是的AsyncTask内的函数返回值:
public String[] returnmyString(){
//return mySaveData;
Log.v("ARRAY LENGTH", String.valueOf(returnValues.length));
return returnValues;
}
你需要一个回调方法。当任务x完成时,将结果传递给活动,方法是将反馈作为参数 – Zoe
嘿,你可以进一步解释这种类型的功能吗?任务x将是process.execute,但是我会使用哪种回调方法,以及我将它放在哪里?那么我会用什么样的方法来获得反馈? – RW6
你为什么不简单地将'changedData'设置到'onPostExecute' @ RW6? onPostExecute方法在您调用#execute方法的相同线程上运行。 – tolpp