首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getDrawingCache导致应用程序冻结

getDrawingCache导致应用程序冻结
EN

Stack Overflow用户
提问于 2014-04-08 14:24:24
回答 1查看 115关注 0票数 0

我的应用程序当前在初始化时冻结。我已经将范围缩小到与此代码片段中的getDrawingCache()调用相关的内容。当我把它拿出来的时候,问题就消失了。

代码语言:javascript
复制
public Shot getScreenshot(View view) throws DrawingCacheException {
    view.setDrawingCacheEnabled(true);
    Bitmap bitmap;
    try {
        Bitmap drawingCache = view.getDrawingCache();
        if (drawingCache == null) {
            throw new DrawingCacheException("Cannot get bitmap drawing cache");
        }

        bitmap = Bitmap.createBitmap(drawingCache);
    } finally {
        view.setDrawingCacheEnabled(false);
    }
    //do postprocessing
}

问题当然是与上下文有关的。这在以前是有效的,并且我根本没有接触过这段代码,但是我确实重构了调用它的类。

在任何人提到它之前,是的,这是在活动的UI线程上运行的。我已经检查过四次了。

那么,是什么与这段代码交互导致冻结呢?

EN

回答 1

Stack Overflow用户

发布于 2014-04-09 05:00:25

问题是屏幕截图,以及后来的编码,太慢了,以至于冻结了应用程序。这种情况并不经常发生,但是增加延迟解决了这个问题。是时候在perf上工作了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22929154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档