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之间传递的类。