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