gpt4 book ai didi

android - Picasso库异常崩溃

转载 作者:行者123 更新时间:2023-12-03 15:47:41 25 4
gpt4 key购买 nike

我在毕加索遇到问题,出现当机:

Fatal Exception: java.util.concurrent.RejectedExecutionException: Task com.squareup.picasso.PicassoExecutorService$PicassoFutureTask@41a39a38 rejected from com.squareup.picasso.PicassoExecutorService@41acc1d0[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1967)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:782)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1303)
at com.squareup.picasso.PicassoExecutorService.submit(PicassoExecutorService.java:88)
at com.squareup.picasso.Dispatcher.performSubmit(Dispatcher.java:202)
at com.squareup.picasso.Dispatcher.performSubmit(Dispatcher.java:175)
at com.squareup.picasso.Dispatcher$DispatcherHandler.handleMessage(Dispatcher.java:482)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:153)
at android.os.HandlerThread.run(HandlerThread.java:60)

这是我在onResume()中创建毕加索的方法:
    final Picasso.Builder builder = new Picasso.Builder(context);
builder.indicatorsEnabled(BuildConfig.DEBUG);
builder.defaultBitmapConfig(Bitmap.Config.RGB_565);

final long cacheSize = (long) (getAvailableRam() * 0.5F);

builder.memoryCache(new LruCache((int) cacheSize));
builder.listener(_listener);
_picasso = builder.build();

并在onPause()中:
    if (_picasso != null) {
_picasso.shutdown();
_picasso = null;
}

有什么建议么?

最佳答案

可能是关机问题。我建议之前取消所有任务,然后关闭毕加索:)

checkout 此:https://github.com/square/picasso/issues/329

简单快速的解决方案。

对毕加索使用单个实例

  /** Stops this instance from accepting further requests. */
public void shutdown() {
if (this == singleton) {
throw new UnsupportedOperationException("Default singleton instance cannot be shutdown.");
}
if (shutdown) {
return;
}
cache.clear();
cleanupThread.shutdown();
stats.shutdown();
dispatcher.shutdown();
for (DeferredRequestCreator deferredRequestCreator : targetToDeferredRequestCreator.values()) {
deferredRequestCreator.cancel();
}
targetToDeferredRequestCreator.clear();
shutdown = true;
}

检查:
  public void cancelTag(Object tag) {
checkMain();
if (tag == null) {
throw new IllegalArgumentException("Cannot cancel requests with null tag.");
}

List<Action> actions = new ArrayList<Action>(targetToAction.values());
//noinspection ForLoopReplaceableByForEach
for (int i = 0, n = actions.size(); i < n; i++) {
Action action = actions.get(i);
if (tag.equals(action.getTag())) {
cancelExistingRequest(action.getTarget());
}
}

List<DeferredRequestCreator> deferredRequestCreators =
new ArrayList<DeferredRequestCreator>(targetToDeferredRequestCreator.values());
//noinspection ForLoopReplaceableByForEach
for (int i = 0, n = deferredRequestCreators.size(); i < n; i++) {
DeferredRequestCreator deferredRequestCreator = deferredRequestCreators.get(i);
if (tag.equals(deferredRequestCreator.getTag())) {
deferredRequestCreator.cancel();
}
}
}

关于android - Picasso库异常崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34220217/

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