Android 为什么我会得到;java.lang.IllegalStateException:无法执行任务:任务已在运行";?

Android 为什么我会得到;java.lang.IllegalStateException:无法执行任务:任务已在运行";?,android,Android,我得到以下错误: java.lang.IllegalStateException: Cannot execute task: the task is already running. 这是frag: import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; imp

我得到以下错误:

 java.lang.IllegalStateException: Cannot execute task: the task is already running.
这是frag:

import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.app.Fragment;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

/**
 * Created by anameme on 10/24/2015.
 */
public class LatestJokesFrag extends Fragment{
    ListView list;

    public LatestJokesFrag() {
        // Required empty public constructor

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        downloadImage();

    }

    public void downloadImage() {
        // OkHttpHandler handler = new OkHttpHandler();

        OkHttpHandler handler = new OkHttpHandler(getActivity(),
                new OkHttpHandler.MyInterface() {
                    @Override
                    public void myMethod(ArrayList result) {
                        Toast.makeText(getActivity(), "Connection Succesful",
                                Toast.LENGTH_LONG).show();
                        GridViewAdapter adapter = new GridViewAdapter(getActivity(), R.layout.grid_item_layout, result);

                        adapter.notifyDataSetChanged();
                        list.setAdapter(adapter);
                    }
                });

        handler.execute();
        String image = null;

        try {

            image = handler.execute().get();
            Log.d("e", "hhhh handler");
            System.out.print(image);
            //if (image != null && image.length > 0){
            //  Log.isLoggable("e",image.length);
            //Log.d("e", "ddddddd entered the try");
            //      Bitmap bitmap = BitmapFactory.decodeByteArray(image, 0, image.length);
            //    imageView.setImageBitmap(bitmap);
            //              txtBytes.setText("Total bytes downloaded: " + image.length);


        } catch (Exception e) {
            Log.d("e", "rrrrrr error");

            e.printStackTrace();
//            txtBytes.setText("Hmm sorry, something went wrong!");
        }

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        final View v = inflater.inflate(R.layout.latestjokesfrag, container, false);
        list = (ListView) v.findViewById(R.id.ListView);
        return inflater.inflate(R.layout.latestjokesfrag, container, false);
    }
}
这是奥特芬德勒

public class OkHttpHandler extends AsyncTask<String, Void, String> {
    private Context mContext;
    private MyInterface mListener;
    public OkHttpHandler (Context context, MyInterface mListener){
        mContext = context;
        this.mListener  = mListener;
    }
    public interface MyInterface {
        public void myMethod(ArrayList result);
    }

    private final String Fetch_URL = "http://justedhak.comlu.com/get-data.php";
    ArrayList<Listitem> Listitem;
    int resulta;

    OkHttpClient httpClient = new OkHttpClient();
    ListView list;
    String myJSON;
    JSONArray peoples = null;
    InputStream inputStream = null;

    @Override
    protected String doInBackground(String... params) {
        Log.d("e", "dddddddddd");
        Log.d("e", Fetch_URL);
      //   list = (ListView) findViewById(R.id.ListView);

        Request.Builder builder = new Request.Builder();
        builder.url(Fetch_URL);

        Request request = builder.build();

        String result = null;
        try {

          //  int statusCode = response.getStatusLine().getStatusCode();
            //  int statusCode =200;

           // HttpEntity entity = response.body().byteStream();
         //   if (statusCode == 200) {
            Response response = httpClient.newCall(request).execute();
            if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
            inputStream = response.body().byteStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null)
                {
                    sb.append(line + "\n");
                }
                result = sb.toString();
                resulta = 1; //"Success
                Log.d("e", "response.");
              //  return response.body().bytes();
        } catch (Exception e) {
            Log.d("e", "r2r2 error");
            e.printStackTrace();        }
        finally {
            try{if(inputStream != null)inputStream.close();}catch(Exception squish){}
        }
        return result;
    }
    @Override
    protected void onPostExecute(String result){
        if( resulta ==1){
            myJSON=result;
            Log.e("result",result);

            showList();
        }
        else{
            Log.e("d","zzzzzzzz");

        }
    }

    protected void showList(){
        try {
            Log.e("d","jjjjjjjjjj");

            JSONObject jsonObj = new JSONObject(myJSON);
            peoples = jsonObj.getJSONArray("result");
            Listitem = new ArrayList<Listitem>();
            for(int i=0;i<peoples.length();i++){
                JSONObject c = peoples.getJSONObject(i);
                String id = c.getString("id");
                String url = c.getString("path");
                Listitem.add(new Listitem(id,url));
                Log.e("d", "ppppp");
                System.out.println(Listitem);
            }
            if (mListener != null)
                  mListener.myMethod(Listitem);
         //   GridViewAdapter adapter = new GridViewAdapter(mContext, R.layout.grid_item_layout, Listitem);
          //    gridView.setAdapter(gridAdapter);
     //      adapter.notifyDataSetChanged();
       //      list.setAdapter(adapter);

        } catch (JSONException e) {
            e.printStackTrace();
        }

    }

您可以调用相同的处理程序。execute(),根据任务只能执行一次

如果要再次执行该任务,必须初始化新的异步任务 请看这个方法

downloadImage()
你初始化了吗

OkHttpHandler handler = new OkHttpHandler(getActivity()..
打电话

handler.execute()

然后在try块中再次执行该操作

try{
///
image =  handler.execute().get();

}
这会导致您的帖子中描述的错误

您应该再次初始化一个新任务,如下所示

  try{

      image =  new OkHttpHandler(getActivity()...).execute().get();
    }

然后它将工作

您调用相同的处理程序。execute(),根据任务只能执行一次

如果要再次执行该任务,必须初始化新的异步任务 请看这个方法

downloadImage()
你初始化了吗

OkHttpHandler handler = new OkHttpHandler(getActivity()..
打电话

handler.execute()

然后在try块中再次执行该操作

try{
///
image =  handler.execute().get();

}
这会导致您的帖子中描述的错误

您应该再次初始化一个新任务,如下所示

  try{

      image =  new OkHttpHandler(getActivity()...).execute().get();
    }

然后它将工作

您调用相同的处理程序。execute(),根据任务只能执行一次

如果要再次执行该任务,必须初始化新的异步任务 请看这个方法

downloadImage()
你初始化了吗

OkHttpHandler handler = new OkHttpHandler(getActivity()..
打电话

handler.execute()

然后在try块中再次执行该操作

try{
///
image =  handler.execute().get();

}
这会导致您的帖子中描述的错误

您应该再次初始化一个新任务,如下所示

  try{

      image =  new OkHttpHandler(getActivity()...).execute().get();
    }

然后它将工作

您调用相同的处理程序。execute(),根据任务只能执行一次

如果要再次执行该任务,必须初始化新的异步任务 请看这个方法

downloadImage()
你初始化了吗

OkHttpHandler handler = new OkHttpHandler(getActivity()..
打电话

handler.execute()

然后在try块中再次执行该操作

try{
///
image =  handler.execute().get();

}
这会导致您的帖子中描述的错误

您应该再次初始化一个新任务,如下所示

  try{

      image =  new OkHttpHandler(getActivity()...).execute().get();
    }


然后它就会起作用了

@Moudiz编辑了我的答案。为了让我的代码看起来更干净:)谢谢你解决问题:P。。但是我现在有一个新问题,我的图像适配器不工作,我会发布一个新问题,你能帮我解决吗?我真的很感激你的帮助,你能检查一下吗?检查:)谢谢!帮助我在后台下载了多个JSONanother@Moudiz编辑了我的答案。为了让我的代码看起来更干净:)谢谢你解决问题:P。。但是我现在有一个新问题,我的图像适配器不工作,我会发布一个新问题,你能帮我解决吗?我真的很感激你的帮助,你能检查一下吗?检查:)谢谢!帮助我在后台下载了多个JSONanother@Moudiz编辑了我的答案。为了让我的代码看起来更干净:)谢谢你解决问题:P。。但是我现在有一个新问题,我的图像适配器不工作,我会发布一个新问题,你能帮我解决吗?我真的很感激你的帮助,你能检查一下吗?检查:)谢谢!帮助我在后台下载了多个JSONanother@Moudiz编辑了我的答案。为了让我的代码看起来更干净:)谢谢你解决问题:P。。但是我现在有一个新问题,我的图像适配器不工作,我会发布一个新问题,你能帮我解决吗?我真的很感激你的帮助,你能检查一下吗?检查:)谢谢!帮助我在后台一个接一个地下载多个JSON