我有一个 Android 应用程序,它显示“启动画面”3 秒钟。之后,加载 MainActivity。
不幸的是,MainActivity 需要大约 4 秒的时间来加载。在第一次启动时甚至更长。但是,当应用程序加载时,一切运行顺利。
现在我该如何实现,在启动画面显示期间加载 MainActivity?它应该只显示一个图像,直到整个东西完全加载。我已经阅读了有关 Async-Task 的信息,但我不确定将它放在哪里以及如何正确使用它。有人能帮助我吗?
启动画面.java
public class SplashScreen extends Activity {
private static int SPLASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_startup);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
finish();
}
}, SPLASH_TIME_OUT);
}
}
主活动.java
public class MainActivity extends Activity implements OnClickListener, MediaController.MediaPlayerControl {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Some heavy processing
//starting services
//starting Google Text to Speech
//and so on...
}
}
原文由 HorstB 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果对启动画面的显示时间没有具体限制,您可以按以下方式使用
AsyncTask
:如果结果数据的性质不同于字符串,您可以将
Parcelable
对象作为活动的额外内容。在onCreate
中,您可以通过以下方式检索数据:getIntent().getExtras.getString('data');