-8

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

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

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

提前致谢!

4

1 回答 1

1

对不起,你不能那样做。

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

于 2012-11-06T23:24:17.467 回答