我的应用目前正在冻结初始化。我已将其缩小到与此片段中的getDrawingCache()
调用相关的内容..当我将其取出时,问题就会消失。
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线程上运行的。我进行了四重检查。
那么,什么可能与此代码交互导致冻结?
答案 0 :(得分:0)
问题在于截图以及之后的编码速度太慢以至于冻结了应用程序。这种情况并非经常发生,但增加延迟可以解决问题。是时候工作了!