Android应用:ANR keyDispatchingTimedOut错误

时间:2012-04-17 14:09:27

标签: android

当UI线程加载了大量循环和逻辑操作时,会出现这种错误的建议吗?

3 个答案:

答案 0 :(得分:2)

通过File explorer中的data / anr / trace.txt获取错误消息。并且,还将所有逻辑操作和循环放入单独的线程中。

答案 1 :(得分:0)

当您在UI线程上进行密集工作并且不允许用户界面刷新时,会发生ANR错误。您的描述完全符合此案例。

要修复它,请在不同的线程上运行这些操作。如果在您的情况下这很方便,您也可以使用AsyncTask。见http://developer.android.com/reference/android/os/AsyncTask.html

答案 2 :(得分: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();