问题描述
|
我有在Android 2.3.3(Nexus One)上运行的类似代码
for(i=0; i<1000; i++){
for(j=0;j<1000;j++){
do AND calculation
do XOR calculation
}
}
这对于Android来说是太多的计算吗?
我经历了调试器,并且在第一个for循环的3次迭代(总共3000次迭代)之后,调试器失去了控制权
我在这样的新线程上运行此函数,并在主ui线程上调用此函数。
public void startCalculation(ArrayList<data> featA,ArrayList<data> featB){
newThread= new Thread(new Runnable(){
public void run(){
theFunction();
}
});
newThread.start();
}
提前致谢...
解决方法
是的,由于没有响应,进程监视器似乎可能杀死了您的应用程序。使长时间运行的操作脱离UI线程。
,不要在UI线程上执行此操作...将Threads或AsyncTasks用于长时间运行的操作
编辑:
对于调试使用logcat ...
只需添加
Log.d(\"Some My Tag\",\"Debuging value of smth is:\" + value);
然后从Eclipse中Logcat的窗口中读取值
,如果在UI线程上执行长时间运行的操作,则会收到ANR(应用程序无响应)错误。您应该在后台线程中执行繁重的工作。