我正在尝试使用以下代码来获取结果值,但是它似乎从未更新过.我在名为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方法中更新所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)