gpt4 book ai didi

android - 异步任务 Android 中的 java.util.concurrent.RejectedExecutionException

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:46 30 4
gpt4 key购买 nike

public View getView(final int position, View convertView, ViewGroup parent) {
SectionHolder sectionHolder = null;
ViewHolder holder = null;
convertView = listAdapter.getView(getIndexForPosition(position),
convertView, parent);
convertView.setTag(contactsIds[getIndexForPosition(position)]);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView
.findViewById(R.id.list_item_title);
holder.id = contactsIds[getIndexForPosition(position)];
new ThumbnailTask(holder,contactsIds[getIndexForPosition(position)]).execute();
return convertView;
}

private class ThumbnailTask extends AsyncTask<Void, Void, Integer> {
private String mId;
private ViewHolder mHolder;
public ThumbnailTask(ViewHolder holder, String id) {
mId = id;
mHolder = holder;
}

@Override
protected Integer doInBackground(Void... params) {
// TODO Auto-generated method stub
int drawableId = getContactStatus(mHolder.id);
// Log.i("DRAWABLE",drawableId+"");
return drawableId;
}

protected void onPostExecute(Integer drawableId) {
if (mHolder.id.equals(mId)) {
if (drawableId != 0) {
if (UpdateStatusService.user == 1) {
mHolder.txtTitle.setCompoundDrawablesWithIntrinsicBounds(0, 0,drawableId, 0);
} else {
mHolder.txtTitle.setCompoundDrawablesWithIntrinsicBounds(0, 0,R.drawable.ic_action_quetion, 0);
}
} else {
mHolder.txtTitle.setCompoundDrawablesWithIntrinsicBounds(0,0, android.R.color.transparent, 0);
}
}
}
}
static class ViewHolder {
public TextView txtTitle;
public String id;
}

这是我的适配器代码,用于获取 ListView 的 View 。

ListView 包含来自 android 的联系人列表。

但我得到了 java.util.concurrent.RejectedExecutionException异步任务基本上从服务器获取图像,如果任何数字与服务器数据匹配,将包含一张图像,否则不设置。

那么我应该怎么做才能避免这个异常呢?

最佳答案

AsyncTask 线程被放置在一个工作队列中。该工作队列限制了您可以实例化的线程数。当您超过最大值时,它会给您一个 RejectedExecutionException

解决方案是重构您的代码,使其不在 getView() 中实例化线程,或者进行检查以控制当前行的线程是否已启动。 getView() 被非常频繁地调用,因此如果您不检查线程当前是否在一行中运行,您最终将超过允许的线程数。

下载链接:https://www.dropbox.com/s/pvr9zyl811tfeem/ListViewImageCache.zip

关于android - 异步任务 Android 中的 java.util.concurrent.RejectedExecutionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12074985/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com