我有两个活动。当按意图切换到第二个活动时,它需要 3-4 秒,因为它有很多组件,适配器从 SQLite 等获取数据。因此,我想在切换时显示一个进度对话框。
为此,我一直在挖掘主题并尝试了其中的许多主题:
1-) 在第二个活动上使用 AsyncTask。一旦我单击一个组件切换到第二个活动,它就不会显示进度对话框。它等待 3-4 秒,然后进度对话框显示不到一秒,这不是用户友好的方式。
2-) 在第一个活动上使用 AsyncTask。只要我单击该组件,它就会显示,但进度轮不旋转。进度对话框冻结。
3-) 在第二个活动上使用 AsyncTask onStart() 方法。这是第一种方式。
下面的代码实现了上面的第二种方式,在第一个活动上使用 AsyncTask。
public void toVisitRegister(Event event) { //Switching to the second activity
new startingThread().execute();
Intent toVisitRegister = new Intent(MainCalendar.this, VisitRegister.class);
startActivity(toVisitRegister);
finish();
}
这是 AsyncTask
public class startingThread extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
startingProgress = new ProgressDialog(MainCalendar.this);
startingProgress.setTitle("Visit Register");
startingProgress.setMessage("Initializing...");
startingProgress.show();
}
@Override
protected String doInBackground(String... params) {
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if(MainCalendar.this.startingProgress != null) {
MainCalendar.this.startingProgress.dismiss();
}
}
}
我也尝试在 onPostExecute 中调用 startActivity,但没有成功。因此,我正在等待您对这个问题的意见和建议。任何帮助将不胜感激。
谢谢。