我似乎在兜圈子。我有一些代码,即使在 Galaxy S3 上也需要几秒钟才能运行。从数据库中拖拽数据。我想在这个周围添加一个进度条弹出窗口(旋转圆圈),让用户知道应用程序正在做某事。我已经在应用程序的其他地方尝试了 Asyntasks 并且工作正常,但是对于这种类型,主 UI 不会等待 Asyntask 完成然后继续,因此被调用的新活动没有它需要的所有数据并崩溃。
AsyncTask 是解决这个问题的最佳方法,还是有一种更简单的方法来启动主 Activity,显示进度条,然后在 long deley 完成后继续前进。
感谢时间
更新
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() 似乎在数据库方法完成之前被调用。
我的问题是我在活动中嵌套了类并且任务似乎已经完成,而它下面的类还没有?
谢谢