【发布时间】:2013-05-21 09:26:53
【问题描述】:
我似乎在兜圈子。 我有一些代码,即使在 Galaxy S3 上也需要几秒钟才能运行。从数据库中拖拽数据。 我想在这个周围添加一个进度条弹出窗口(旋转圆圈),让用户知道应用程序正在做某事。 我已经在应用程序的其他地方尝试过 Asyntasks 并且工作正常,但对于这种类型的主 UI 不会等待 Asyntask 完成后再继续,因此被调用的新活动没有它需要的所有数据并崩溃。
AsyncTask 是解决这个问题的最佳方法,还是有更简单的方法来暂停主 Activity,显示进度条,然后在长延迟完成后继续前进。
感谢您的时间
更新
public class UpdateDetailsAsyncTask extends AsyncTask<Void, Void, Boolean> {
private Context context;
private TaskCallback callback;
private ArrayList<Object> object;
private ProgressDialog progress;
public UpdateDetailsAsyncTask (
Context pContext,
ArrayList<Object> pObject,
TaskCallback pCallback) {
context = pContext;
callback = pCallback;
object = pObject;
}
@Override
protected void onPreExecute() {
Log.i("AsyncTask", "onPreExecuted");
progress = new ProgressDialog(context);
progress.setMessage(context.getResources().getString(R.string.loading));
progress.show();
}
@Override
protected Boolean doInBackground(Void... params) {
Log.i("Archery", "AsyncTask Excuted");
Log.i("Archery Scorepad", "Building Continue Round Details");
// Save Data to Database
return true;
}
protected void onPostExecute(Boolean result) {
Log.i("AsyncTask", "onPostExuted");
progress.dismiss();
callback.startNewActivity();
}
}
从主 Activity 调用任务
new UpdateDetailsAsyncTask(this, ArrayListOfObjects, this).exute();
更新 2
..
更新 3
执行某些工作的代码调用 Util 类中的方法,该方法调用数据库类。我有日志消息显示我保存到数据库的所有数据行。它正确启动并运行,但似乎在数据库方法完成之前调用了 onPostExecute()。
我的问题是我在活动中嵌套了类,而任务似乎已经完成,而它下面的类还没有完成?
谢谢
【问题讨论】:
-
可以发布,但主要代码是基本的,所以认为描述就可以了。
-
你在找this
标签: android