关于“强制关闭/等待”通知

时间:2011-06-03 15:26:45

标签: android dialog wait

我有一个带有列表视图的应用程序,可以动态下载图像。它们是非常小的图像,它们在下载后存储。但是,如果用户的连接速度非常慢(我的意思是非常慢),它会滞后并提示用户“强制关闭或等待?”对话框。

我想知道在用户收到通知之前是否可以抓住这个,这将使我能够杀死我的线程,抛出我自己的自定义对话框并按我想要的方式处理它。

这可能吗?

3 个答案:

答案 0 :(得分:5)

您正在获取ANR (application not responding)对话框,因为您正在阻止UI线程。这是不好的!在单独的线程上执行所有长时间运行的任务(,如网络或文件IO ),并说AsyncTask

您可以使用Strict Mode来检测您滥用UI线程的位置。

建议您查找Painless ThreadingMulti-Threading

答案 1 :(得分:2)

听起来你正在UI线程上进行下载。这与推荐的做法相反,从Honeycomb开始,将抛出异常。有关将您的网络活动从UI线程中移除的方法,请参阅文章Painless Threading

答案 2 :(得分:0)

我建议您可能不想在UIThread上下载图像。您可能应该将图像加载到后台线程中,这样您就不会首先获得ANR。

您可以使用AsyncTask或类似方法来完成工作,这样您就不必自己编写线程同步代码。