Android - 在主活动UI线程中运行长代码时显示进度

时间:2012-11-06 23:18:04

标签: android progress redraw

我已经看过很多次问过这个问题,但没有办法做到这一点。我在主UI线程中有更多不同的代码段(有时需要超过10秒),并希望向用户显示一些进度。我不会重做所有代码来尝试在单独的线程中移动代码的所有各个部分(已经是一个非常复杂的应用程序),同时也冻结了在继续之前需要执行代码的主线程,所以不建议使用Thread / Handler / AsyncTask因为他们不会这样做。

我尝试过的一件事是从我正在使用的自定义视图的onDraw中存储Canvas指针,并在运行长代码时绘制一些东西,但视图只在代码完成执行后刷新。有什么方法可以在执行代码时强制重绘图形吗?

向用户显示消息/进度的另一种方法是打开上面不会全屏的单独活动,这样您仍然可以看到应用程序的后面部分,就像您长按主页按钮和出现最近的应用弹出窗口。我怎么能这样做,我如何在两个活动之间进行交流?

提前致谢!

1 个答案:

答案 0 :(得分:1)

很抱歉,但你做不到。

主线程仅用于操作UI而不用于长时间操作... progress也将冻结,因为它是UI线程的一部分。查看Google指南,如果您真的想这样做,请查看ProgressDialog