Android 如何从AsyncTask中获取价值?
首先,请看一下我下面的代码 我的任务代码:Android 如何从AsyncTask中获取价值?,android,android-asynctask,Android,Android Asynctask,首先,请看一下我下面的代码 我的任务代码: public class loadNewMeeting extends AsyncTask<String, String, String> { int intCount = 0; JSONObject jnewmeeting; JSONArray attendants; public String doInBackground(String... args) { Lis
public class loadNewMeeting extends AsyncTask<String, String, String> {
int intCount = 0;
JSONObject jnewmeeting;
JSONArray attendants;
public String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("attendant[userid]", Userid));
jnewmeeting = jParser.makeHttpRequest(str_url_att, "POST", params);
try {
int success = jnewmeeting.getInt("msg");
if (success == 1) {
attendants = jnewmeeting.getJSONArray("attendant");
for (int i = 0; i < attendants.length(); i++) {
JSONObject c = attendants.getJSONObject(i);
int intRole = c.getInt("role");
if (intRole == 3 ){
intCount = intCount +1;
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return String.valueOf(intCount);
}
protected void onPostExecute(String file_url) {
countMeeting = String.valueOf(intCount);
SetCount(countMeeting);
if (intMeetingNum < intCount)
Toast.makeText(getBaseContext(), "You get " + (intCount - intMeetingNum) + " new meeting(s)", Toast.LENGTH_LONG).show();
intMeetingNum = intCount;
}
}
公共类loadNewMeeting扩展异步任务{
int计数=0;
JSONObject jnewmeeting;
JSONArray服务员;
公共字符串doInBackground(字符串…args){
List params=new ArrayList();
add(新的BasicNameValuePair(“attendant[userid]”,userid));
jnewmeeting=jParser.makeHttpRequest(str_url_att,“POST”,params);
试一试{
int success=jnewmeeting.getInt(“msg”);
如果(成功==1){
attendants=jnewmeeting.getJSONArray(“attendant”);
对于(int i=0;i
我无法从外部任务获取countMeeting
。我试图创建Set和Get方法,但countMeeting
仍然为空。正在寻求帮助
谢谢。为什么不从“doInBackground”方法返回countMeeting
由于不使用“file_url”返回值,在“onPostExecute”方法中,只需更改“doInBackground”方法的返回值、“doInBackground”方法的签名、“onPostExecute”的签名以及异步任务初始化的第三个参数。Ok,其中是
getCount()
您如何在代码中访问它?您是否调用了ASyncTask的方法?您的loadNewMeeting
类是否在活动
类中?如果是,则可以直接访问任何实例变量或方法;如果不是,则编写loadNewMeeting
类的构造函数,并在此传递活动的上下文
,然后可以使用活动的任何实例变量或方法。AsyncTask和countMeeting
位于同一活动中。我想从AsyncTask外部获取countMeeting
的值,但该值为空。如何在“onPostExecute”中获取返回值?我不熟悉使用AsyncTask。AsyncTask初始化中的第三个参数是在doinBackGround的返回值和onPostExecute之间传递的类。