下面是我的片段中的AsyncTask类,当我点击片段时,我得到了这个错误: NetworkOnMainThread异常(我不能发布图片,因为我的声誉不够高)
private class me extends AsyncTask<Object,Void,Boolean>{
DisplayMetrics dm = new DisplayMetrics();
protected void onPreExecute(){
String sess = SignIn.giveSession().getSession().getToken();
deviceId = device.getDeviceId();
data = RestQuery.profileImage(sessionToken, deviceId, username);
bm = BitmapFactory.decodeByteArray(data,0,data.length);
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
username = reWiPr.getName();
}
protected Boolean doInBackground(Object... stuff){
if(reWiPr == null){
return false;
}
return true;
}
protected void onPostExecute(Boolean results){
if(results){
image.setMinimumHeight(dm.heightPixels);
image.setMinimumWidth(dm.widthPixels);
image.setImageBitmap(bm);
uName.setText(reWiPr.getName());
rName.setText(reWiPr.getRealName());
safety.setText("Safety: " + reWiPr.getRating().getSafe());
time.setText("Time: " + reWiPr.getRating().getTime());
courteous.setText("Courteous: " + reWiPr.getRating().getCourteous());
cleanliness.setText("Cleanliness: " + reWiPr.getRating().getClean());
overall.setText("Overall: " + reWiPr.getRating().getOverall());
average.setText("Average: " + reWiPr.getRating().getAverage());
ve.setText("Vehicles: " + reWiPr.getVehicle() );
}
}我该如何解决这个问题?我需要这个AsyncTask来使片段工作,并在onCreate()方法中执行它。任何帮助都将非常感谢。*
发布于 2014-01-15 06:25:15
您没有使用正确的方法进行网络调用。你必须将你的网络调用转移到doInBackground中,我看到它现在已经在onPreExecute中了。
从文档中:
执行异步任务时,任务会经历4个步骤:
在执行任务之前在UI线程上调用的
发布于 2014-01-15 06:25:31
您需要在doInBackground方法中执行网络任务。目前你有onPreExecute,它运行在GUI线程上。
https://stackoverflow.com/questions/21125254
复制相似问题