【发布时间】:2012-11-27 19:19:50
【问题描述】:
我的应用程序中有一个活动,它需要几个屏幕捕获并通过单击按钮移动到下一个活动。我想在截屏时向用户显示一些进度或状态(需要 5-8 秒)。我尝试使用AsyncTask 和runOnUithread()。但没有运气。即使我在doInBackground() 中编写了整个代码,我也不知道为什么在截取所有屏幕截图后会启动 ProgressDialog。这样做的更好方法是什么?这是我的代码:
public class TakeScreenShots extends AsyncTask<Void, Void, Void> {
private ProgressDialog dialog;
@Override
protected void onPreExecute() {
this.dialog = ProgressDialog.show(MyActivity.this, "MyTitle",
"Loading .....", true);
}
@Override
protected Void doInBackground(Void... params) {
MyActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
takeScreenshots();
}
});
return null;
}
@Override
protected void onPostExecute(Void unused) {
gotoNextActivity();
this.dialog.dismiss();
}
}
【问题讨论】:
-
如果你实现了异步任务,它应该会显示进度对话框并在完成后移动到下一个活动。
-
是的。但它不是那样做的。调用 takeScreenShots() 方法后出现进度对话框。
-
你在 NExt 屏幕上做什么?
-
@user370305 这是一种耗时的方法。实际上它需要超过5秒。所以我想向用户展示一些进度对话框。我想那个方法里有什么应该无关紧要。它应该只在后台发生并显示进度对话框吗?
-
没有什么只是显示所有捕获的图像。 @Sameer
标签: android android-asynctask screenshot