【发布时间】:2015-10-07 00:59:09
【问题描述】:
我有一个 Android 应用程序,它会显示 3 秒钟的“启动画面”。之后,MainActivity 被加载。
不幸的是,MainActivity 需要额外的约 4 秒才能加载。在第一次启动时甚至更长。但是,当应用程序加载完毕后,一切运行顺利。
现在我该如何实现它,即 MainActivity 在启动画面显示期间被加载?它应该只显示一个图像,直到整个东西完全加载。 我已经阅读了有关 Async-Task 的信息,但我不确定将它放在哪里以及如何正确使用它。有人可以帮帮我吗?
SplashScreen.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);
}
}
MainActivity.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...
}
}
【问题讨论】:
-
一种解决方法可能是仅使用
MainActivity,最初显示初始屏幕布局,然后隐藏/删除它(例如通过Handler.postDelayed())以显示实际的活动布局。 -
这个来自 Android 开发者的新提示可能会有所帮助:plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd
-
你用谷歌搜索了吗?有很多例子供你参考。检查这个androidhive.info/2013/07/…
-
感谢 cmets! @Soham:我的示例代码来自与您的链接完全相同的来源......所以是的,我已经用谷歌搜索了它。然而,我的问题由 TmKVU here 解决了
标签: java android splash-screen