java-变量未在AsyncTask的doInBackground方法中更新

java-变量未在AsyncTask的doInBackground方法中更新,第1张

概述我正在尝试使用以下代码来获取结果值,但是它似乎从未更新过.我在名为startPosting()的类中检查结果:publicclassPostDataThreadextendsAsyncTask<Void,Void,Void>{String[]data;Contextcontext;intresult=0;publicintstartPosting(inttype,Stringd

我正在尝试使用以下代码来获取结果值,但是它似乎从未更新过.我在名为startPosting()的类中检查结果:

public class PostDataThread extends AsyncTask<VoID, VoID, VoID> {  String [] data;  Context context;  int result = 0;  public int startPosting(int type,String data[], Context c) {    this.data = data;    this.context = c;    this.execute();    return result;  }  @OverrIDe  protected VoID doInBackground(VoID... params) {    Connect c = new Connect();    c.start(Constant.RECEIVED_MESSAGE, data, context);    result = 444;    return null;  }  protected voID onPostExecute(Integer result) {    //            }}

解决方法:

结果没有得到更新的原因是因为您试图在调用AsyncTask之后立即对其进行检查.

这是您如何重新组织它的方法:

public class PostDataThread extends AsyncTask<VoID, VoID, Integer> {  String [] data;  Context context;  int res = 0;  public PostDataThread(int type, String data[], Context c) {    this.data = data;    this.context = c;  }  @OverrIDe  protected VoID doInBackground(VoID... params) {    Connect c = new Connect();    c.start(Constant.RECEIVED_MESSAGE, data, context);    res = 444;    return res;  }  @OverrIDe  protected voID onPostExecute(Integer result) {    Log.d(TAG, "Result is: " +result);  }}

并称之为:

PostDataThread p = new PostDataThread(type, data, context);p.execute();

然后修改onPostExecute以对结果做任何事情.

总结

以上是内存溢出为你收集整理的java-变量未在AsyncTask的doInBackground方法中更新全部内容,希望文章能够帮你解决java-变量未在AsyncTask的doInBackground方法中更新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1085018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存