我的启动画面出现了一些错误,我已经工作了一段时间,但无法弄明白。有没有更好的方法来计算我的启动画面而不是一个线程?我当前的帖子有什么问题?你能看到我的媒体播放器对象出现问题吗?
我发布了我的飞溅课的内容。希望我能就这些问题找到方向。这在我运行应用程序时有效,但我只是不想有错误。
-------------------------代码------------------ ------------
@Override
public void onCreate(Bundle savedInstanceState) {
......onCreate, hide window, and setting content view.......
// Play Sound for startup
mpSplash = MediaPlayer.create(this, R.raw.splashscream);
mpSplash.start();
final Splash splash = this;
logoTimer = new Thread(){
public void run(){
try {
synchronized(this){
// Wait given period of time or exit on touch
wait(4500);
}
}
catch(InterruptedException ex){
ex.printStackTrace();
}
finish();
mpSplash.stop();
mpSplash.reset();
//mpSplash.release();
//mpSplash.release();
// Run next activity
Intent intent = new Intent();
intent.setClass(splash, Game.class);
startActivity(intent);
stop();
}
};
logoTimer.start();
}
// Splash screen touch events
@Override
public boolean onTouchEvent (MotionEvent evt)
{
if(evt.getAction() == MotionEvent.ACTION_DOWN)
{
// Stop the introduction sounds
mpSplash.stop();
mpSplash.reset();
//mpSplash.release();
//mpSplash.release();
synchronized(logoTimer){
logoTimer.notifyAll();
}
}
return true;
}
------------------------------错误------------- ----------------
09-11 21:50:04.644: ERROR/MediaPlayer(460): stop called in state 1
09-11 21:50:04.644: ERROR/MediaPlayer(460): error (-38, 0)
09-11 21:50:04.654: ERROR/global(460): Deprecated Thread methods are not supported.
09-11 21:50:04.654: ERROR/global(460): java.lang.UnsupportedOperationException
09-11 21:50:04.654: ERROR/global(460): at java.lang.VMThread.stop(VMThread.java:85)
09-11 21:50:04.654: ERROR/global(460): at java.lang.Thread.stop(Thread.java:1379)
09-11 21:50:04.654: ERROR/global(460): at java.lang.Thread.stop(Thread.java:1344)
09-11 21:50:04.654: ERROR/global(460): at com.ss.lastzombie.Splash$1.run(Splash.java:61)
谢谢!
答案 0 :(得分:3)
不要在你的帖子中调用stop()
。这是一种弃用的方法(它导致VM不稳定)并且不需要。 (当run()
方法返回时,线程将退出)。您可能打算致电finish()
以获取启动活动。这是有道理的。
为了形式起见,您可能希望在主线程而不是工作线程上调用startActivity
和finish
。为此,请使用runOnUIThread()
发布Runnable,并从Runnable中调用这两个方法。