ここに私のアプリに関するいくつかの事実とそれに続く質問があります
私のアプリには 2 つのフラグメントがあります。
私のアプリは、最初の起動時に特定のファイル構造とドキュメントを作成しますが、時間がかかるため、ファイル構造の作成中にAsyncTask
クラス メソッドを使用して表示ProgressDialog
しています。これはonCreate
、次のように MainActivity のメソッドで行われます。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
progress = new ProgressDialog(this);
progress.setMessage("Loading...");
File testFile = new File("/mnt/sdcard/myNewFolder");
if (!testFile.exists()) {
new MyTask(progress).execute();
setContentView(R.layout.activity_main);
} else
setContentView(R.layout.activity_main);
}
問題はonActivityCreated
、私のメソッドの 1 つが終了する前にFragment
実行を開始することnew MyTask(progress).execute();
です。これにより、エラーや問題が発生します。
なぜonActivityCreated
私の s の 1 つのこのメソッドFragment
が BEFORE で実行されるのです
new MyTask(progress).execute();
か ???
私が考慮に入れなかったばかげた間違いがあると思い込まないでくださいxx
これは私の MyTask クラスです
public class MyTask extends AsyncTask<Void, Void, Void> {
public MyTask(ProgressDialog progress) {
// this.progress = progress;
}
public void onPreExecute() {
progress.show();
}
public void onPostExecute(Void unused) {
progress.dismiss();
}
@Override
protected Void doInBackground(Void... params) {
CreateFileStructure();
return null;
}
}
他の何かが起こる前に、そのファイル構造を作成する必要があります - それが私が this を使用している理由ですProgressDialog
。私は何を間違っていますか?