我的Android应用程序中有一个SplashScreen活动,持续3秒,然后切换到MainActivity。
MainActivity播放声音,它有一个按钮。我的问题是当SplashScreen活动可见时播放声音。
on Main Main的onResume调用run(),run()休眠2秒并播放声音。
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
m.start();
try {
Thread.sleep((int) randomValue * 1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
m.seekTo(0);
m.start();
cpu.setText(EranThatWillShortYourDouble(randomValue));
btn.setClickable(true);
}
@Override
protected void onResume() {
super.onResume();
run();
}
而不是SplashScreen显示3秒并切换到MainAcivity,它持续5秒,并在SplashScreen可见时播放声音。
我该怎么办?
编辑:这是我的SplashScreen活动:
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_splash_screen);
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
// close this activity
finish();
}
}, SPLASH_TIME_OUT);
}
}
答案 0 :(得分:1)
请勿在Android中使用启动画面。它们违反了设计准则并提供了不良的用户体验。
http://developer.android.com/design/patterns/help.html#your-app
答案 1 :(得分:1)
请查看AsyncTask,Android Runnables以及使用Handler发布延迟的功能。
不要在主线程中执行 thread.sleep,这真的很糟糕。 :)