私には2つの活動があります。意図的に2番目のアクティビティに切り替える場合、SQLiteなどからデータをフェッチするアダプターを備えたコンポーネントが多数あるため、3〜4秒かかります。したがって、切り替え中に進行状況ダイアログを表示したいと思います。
私はこの目的のためにトピックを掘り起こし、それらの多くを試しました:
1-)2番目のアクティビティでAsyncTaskを使用します。コンポーネントをクリックして2番目のアクティビティに切り替えるとすぐに、進行状況ダイアログが表示されません。3〜4秒待ってから、進行状況ダイアログが1秒未満表示されますが、これはユーザーフレンドリーな方法ではありません。
2-)最初のアクティビティでAsyncTaskを使用します。そのコンポーネントをクリックするとすぐに表示されますが、プログレスホイールは回転しません。進行状況ダイアログがフリーズします。
3-)2番目のアクティビティでAsyncTask onStart()メソッドを使用します。これが最初の方法です。
以下のコードは、最初のアクティビティでAsyncTaskを使用して、上記の2番目の方法を実装します。
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を呼び出そうとしましたが、機能しませんでした。つきましては、本件についてのご意見・ご提案をお待ちしております。どんな助けでもありがたいです。
ありがとう。