【发布时间】:2012-10-02 14:04:45
【问题描述】:
我正在尝试显示一个旋转的进度对话框,直到我的活动调用方法完成()。我在调用finish() 之前调用progressDialog.show()。我可以看到微调器,但它没有旋转......有什么建议吗?
我尝试将finish() 和在其他活动的onActivityResult() 中调用的内容放在后台线程中,因此ui 线程不必做任何事情。 当我正在调试并且我在另一个线程上的 finish() 方法而不是主线程上等待时,进度对话框正在旋转......当我更进一步并调用 finish() 方法时,进度对话框停止旋转并且1-2 秒后活动消失。
所以我唯一的建议是,finish() 方法是不移动进度对话框的原因...是否有可能让它移动?
提前致谢!
编辑: 该代码位于已完成的活动 A 中。
private void goBack() {
setResult((mReopen) ? Constants.RESULT_REOPEN : RESULT_OK);
if (mReopen) {
mProgressDialog.show();
}
new Thread(new Runnable() {
@Override
public void run() {
finish();
}
}).start();
}
该代码位于启动活动 A 的活动 B 中。
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent) {
if (requestCode == Constants.REQUEST_CODE_OPEN_EMAG) {
new Thread(new Runnable() {
@Override
public void run() {
switch (resultCode) {
case Constants.RESULT_REOPEN:
mReopen = true;
openEmag(mLastOpenedEmagId, false, false);
break;
default:
mReopen = false;
break;
}
}
}).start();
}
}
正如您所见,所有东西都在与 ui 线程不同的线程中调用。
【问题讨论】:
-
您需要包含一些代码,以便人们可以看到您在做什么。
标签: android android-activity dialog progress