以下是关于我的应用的一些事实,然后是一个问题
我的应用程序有两个片段。
我的应用程序在首次启动时会创建某些文件结构和文档,这需要时间,因此我在创建文件结构时使用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
我Fragment
的一个方法在完成之前开始运行new MyTask(progress).execute();
。这会导致错误和问题。
为什么onActivityCreated
我的其中一个方法Fragment
在之前运行
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;
}
}
我需要在其他任何事情发生之前创建该文件结构——这就是我使用它的原因ProgressDialog
。我究竟做错了什么?