1
你好我的工作使用QuickBlox SDK聊天應用。在這裏,我完成了文本聊天至今。現在我正在發送附件(僅限於圖片)。有關quickblox內容部分這首我上傳圖片,上傳全成之後我使用的AsyncTask下載同一圖像內BaseAdapter的子類。這裏發生了什麼,doInBackground的return語句()不執行,所以在這裏我想,有什麼不對,我在這裏做什麼。請幫幫我 。下載圖像 - Android電子
這裏是BaseAdapter的子類的代碼片段,我試圖從quickblox服務器下載圖片。子類BaseAdapter
class BackgroundOperation extends AsyncTask<InputStream , Void , InputStream>{
ViewHolder holder ;
int imageid ;
InputStream inputStream;
BackgroundOperation(ViewHolder holder , String imageid){
this.holder = holder ;
this.imageid = Integer.parseInt(imageid);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected InputStream doInBackground(InputStream... params) {
Handler mHandler = new Handler(Looper.getMainLooper());
mHandler.post(new Runnable() {
public void run() {
QBContent.downloadFileTask(imageid, new QBEntityCallbackImpl<InputStream>() {
@Override
public void onSuccess(InputStream inputS, Bundle params) {
inputStream = inputS ;
//ImageView img = holder.image_attachment ; //.setImageDrawable(d);
//Toast.makeText(context, "Image download Sucess", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(List<String> errors) {
Log.d("Image Download Error : ", errors.toString());
//Toast.makeText(context, "Image Download Error ", Toast.LENGTH_SHORT).show();
}
}, new QBProgressCallback() {
@Override
public void onProgressUpdate(int progress) {
//Toast.makeText(context, "Image Download Progress ", Toast.LENGTH_SHORT).show();
}
});
}
});
return inputStream;
}
@Override
protected void onPostExecute(InputStream s) {
super.onPostExecute(s);
if(s != null){
Log.d("InputStream Value :", "****************************"+s.toString()+"******************");
Bitmap bmp = BitmapFactory.decodeStream(s);
Drawable d = new BitmapDrawable(context.getResources(), bmp);
if(holder.image_attachment != null)
holder.image_attachment.setImageDrawable(d);
}
}
}
您是否找到適當的解決方案,然後請張貼.. :) – Jatin
@Jatin是的,我找到了適當的解決方案。我會發帖直到一天結束。 –
感謝您的重播。請發表您的回答;) – Jatin