我无法将此问题放入可搜索的术语中。我正在开发一个 Android 应用程序,特别是我的应用程序的启动画面。应用程序需要从外部 Web 服务(阻塞函数调用)获取数据,同时用户会得到一个漂亮的标题、图像和进度条。当数据到达时,用户被重定向到主菜单。它是一个简单的屏幕,所有内容都在 xml 布局文件中定义,我的问题是我只是黑屏几秒钟,然后是主菜单。如果我按回去,我会看到进度条愉快地旋转的启动画面。
这是我到目前为止所拥有的:
public class SplashActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
}
@Override
public void onStart(){
super.onStart();
DatabaseManager db = new DatabaseManager(this.getBaseContext());
db.fetchExternCatalog(); //doesnt return until data arrives
Intent intent = new Intent().setClass(this, MainMenuActivity.class);
startActivity(intent);
}
}
似乎直到 Activity 运行(在 onCreate()、onStart() 等之后)才真正绘制屏幕。我认为 onStart() 将是放置这个的完美位置,但显然不是。
那么如何在屏幕上绘制所有内容并在之后调用阻塞函数,以便用户在下载数据时真正看到启动画面?