当 UI 线程加载大量循环和逻辑操作时发生这种错误的任何建议?
user1337889
问问题
1510 次
3 回答
2
通过文件资源管理器中的 data/anr/trace.txt 获取错误消息。并且,还将所有逻辑操作和循环放入单独的线程中。
于 2012-04-17T14:12:52.840 回答
0
当您在 UI 线程上进行大量工作并且不允许刷新用户界面时,就会发生 ANR 错误。您的描述非常适合这种情况。
要修复它,请在不同的线程上运行这些操作。如果在您的情况下方便,您也可以使用 AsyncTask。请参阅http://developer.android.com/reference/android/os/AsyncTask.html
于 2012-04-17T14:11:59.987 回答
0
private class LongWork extends AsyncTask<Void, Integer, Void>
{
@Override
protected Void doInBackground(Void... arg0) {
//Do a long Task here
return null;
}
@Override
protected void onPostExecute(Void result) {
//在UI线程上做你必须做的事情
}
}
然后
LongWork work=new LongWork();
work.execute();
于 2012-04-17T14:19:31.307 回答