我有一个 AsyncTask
在中执行外部方法的 doInBackground
我可以用下面的方式来描述这个结构:
myMethod{
new AsyncTask<Object, Void, Void>() {
@Override
protected Void doInBackground(Object... params) {
Elements x=getElements();
process(x);
}
....
}.execute();
private void process(Elements x){
if(x.getElementsNumber()>0){
Drawing d=x.extractDrawing();
showElements(d);
drawElementsOnImage(d);
}
else{
noElementsWarning();
}
}
方法 drawElementsOnImage(d)
在画布上绘制元素 ImageView
. 一切正常,但如果有超过15个元素,会发生一些奇怪的事情,在正确的结果显示给视频后会出现一些异常, process(Elements x)
被称为第二次展示 noElementsWarning()
这个问题快把我逼疯了。我不知道这种荒谬行为的原因,我可以假设内存有些不足,因为发生在较长的元素列表中,但我看不到堆栈中有任何相关的错误。
如果我移除了内部方法中的所有try-catch块来揭开其他可能导致问题的原因,那么我有一个 NullPointer
由事实引起的例外 x
在第二次执行中根本没有初始化。如果我评论这句话,恶作剧就不会执行了
drawElementsOnImage(d);
这个方法基本上有一些嵌套的 for
循环 float
原语和对 canvas.drawPoint()
绘制相关结果 ImageView
有什么建议或者我得找个驱魔师?
暂无答案!
目前还没有任何答案,快来回答吧!