28
当进度对话框和后台线程处于活动状态时,如何处理屏幕方向变化?
我的程序在后台线程中执行一些网络活动。在开始之前,它会弹出一个进度对话框。该对话框在处理程序上关闭。这一切都很好,除非对话框打开(并且背景线程正在运行)时屏幕方向改变。此时,该应用程序要么崩溃,死锁,要么进入怪异的阶段,直到所有线程被杀死,该应用程序才完全无法运行。 如何优雅地处理屏幕方向变化? 下面的示例代码与我的真实程序大致匹配: public class MyAct extends Activity implements Runnable { public ProgressDialog mProgress; // UI has a button that when pressed calls send public void send() { mProgress = ProgressDialog.show(this, "Please wait", "Please wait", true, true); Thread thread = new Thread(this); thread.start(); } public void run() { Thread.sleep(10000); Message …