2011-05-06 53 views
0

嘿, 因此,我是Android的新手,并试图通过创建一个使其成为新线程的包装类来实现具有大量代码行的类。在这个活动中,它调用了一堆其他类,而当我的UI线程加载正常时,我认为我的计算线程超时或有其他一些形式的失败,因为当我运行它时,我得到ANR对话。为了看看它在多大程度上失败了,我在我的一个内部类中加入了一个println,它似乎很早就失败了。 AsyncTasks有没有时间限制?或者我可能做错了什么,导致它崩溃?任何意见是非常感谢。Android如何让我的AsyncTask失败

回答

0

不,没有时间限制。但是当你做一些长期工作时,你应该仔细观察你使用的方法。 AsyncTask有一个方法doInBackground从工作者线程调用,并从UI线程进行其他调用。如果你得到ANR,那意味着你在UI线程中做了你的工作,这是错误的。您应该在doInBackground方法中执行此操作。

结账AsyncTask documentationPainless Threading article

0

Cody如果我不得不进行调试,我会将整个doInBackground包装在try catch异常e中,并执行Log.d(TAG,“doInBackground”,e)。马尔科姆是正确的,这不应该导致ANR消息,除非你以某种方式阻止UI线程。

相关问题