的问题是最有可能的,你是在同一个线程中所有正在运行的启动画面(某种Dialog如ProgressDialog我假设)正在完成的工作。这将保持启动画面的视图不被更新,这可以防止它被显示在屏幕上。您需要显示启动画面,启动AsyncTask的实例以下载所有数据,然后在任务完成后隐藏启动画面。
所以你的Activity的onCreate()方法只会创建一个ProgressDialog并显示它。然后创建AsyncTask并启动它。我将使AsyncTask成为主Activity的内部类,因此它可以将已下载的数据存储到Activity中的某个变量,并在其onPostExecute()方法中关闭ProgressDialog。
不知道如何了阐述,而不只是显示的代码,所以这里是:
public class MyActivity extends Activity {
private ProgressDialog pd = null;
private Object data = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Show the ProgressDialog on this thread
this.pd = ProgressDialog.show(this, "Working..", "Downloading Data...", true, false);
// Start a new thread that will download all the data
new DownloadTask().execute("Any parameters my download task needs here");
}
private class DownloadTask extends AsyncTask<String, Void, Object> {
protected Object doInBackground(String... args) {
Log.i("MyApp", "Background thread starting");
// This is where you would do all the work of downloading your data
return "replace this with your data object";
}
protected void onPostExecute(Object result) {
// Pass the result data back to the main activity
MyActivity.this.data = result;
if (MyActivity.this.pd != null) {
MyActivity.this.pd.dismiss();
}
}
}
}
显然有一些您需要填写在那里片,但是这个代码应该运行,给你一个很好的起始点(如果有代码错误,请原谅我,因为我现在正在输入此信息,所以无法访问Android SDK)。
关于Android中的AsyncTasks的主题可以找到一些更好的阅读here和here。
任何人能解释Ÿ甚至一个进度条没有加载,即使我尝试在主列表的OnCreate函数中创建并启动它...并在我的过程结束后关闭它...即使这不起作用...我的意思是有一个ny默认的方法,我需要遵循...就像在OnStart()中启动进度条或者什么? – JaVadid 2009-12-30 11:11:21
你尝试了什么接受的答案在http://stackoverflow.com/questions/2222890/how-to-make-a-splash-screen-screen-visible-when-app-starts说?编辑:好吧,接受的答案是有点相同.. – noloman 2011-08-03 19:37:06
看看这个http://www.gadgetsaint.com/android/create-video-splash-screen-android/ – ASP 2017-01-21 21:44:45