我有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
在第二个奇怪的不需要的恶作剧执行。
如果我对该行进行评论,那么 poltergeist执行就不会发生
drawElementsOnImage(d);
基本上这个方法
有一些带for
个原语的嵌套float
个循环
以及一些要求canvas.drawPoint()
调用相关ImageView
的结果
有任何建议或我必须寻找驱魔人吗?