public class tryAnimActivity extends Activity
{
/**
* The thread to process splash screen events
*/
private Thread mSplashThread;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Splash screen view
setContentView(R.layout.janman);
final tryAnimActivity sPlashScreen = this;
// The thread to wait for splash screen events
mSplashThread = new Thread(){
@Override
public void run(){
try {
synchronized(this){
// Wait given period of time or exit on touch
wait(5000);
}
}
catch(InterruptedException ex){
}
finish();
// Run next activity
Intent intent = new Intent();
intent.setClass(sPlashScreen, TabsActivity.class);
startActivity(intent);
stop();
}
};
mSplashThread.start();
}
/**
* Processes splash screen touch events
*/
@Override
public boolean onTouchEvent(MotionEvent evt)
{
if(evt.getAction() == MotionEvent.ACTION_DOWN)
{
synchronized(mSplashThread){
mSplashThread.notifyAll();
}
}
return true;
}
}
这段代码的问题是什么?点击后,它崩溃了。此外,在此活动结束后,下一个活动不会启动。这是用于显示启动画面的活动。
答案 0 :(得分:1)
只需删除stop()
方法即可使用
答案 1 :(得分:1)
我更喜欢使用Runnable元素而不是Thread。我在下面的活动的启动代码运行良好。我希望它对你有所帮助:
public class SplashScreenActivity extends Activity implements OnTouchListener {
private int SPLASH_DISPLAY_LENGTH = 3000;
private Handler splashHandler;
private Runnable splashRunnable;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
findViewById(R.id.splash_img).setOnTouchListener(this);
splashHandler = new Handler();
splashRunnable = new Runnable()
{
@Override
public void run()
{
SplashScreenActivity.this.finish();
Intent mainIntent = new Intent(SplashScreenActivity.this, HomeActivity.class);
startActivity(mainIntent);
}
};
splashHandler.postDelayed(splashRunnable, SPLASH_DISPLAY_LENGTH);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN){
splashHandler.removeCallbacks(splashRunnable);
SplashScreenActivity.this.finish();
Intent mainIntent = new Intent(SplashScreenActivity.this, HomeActivity.class);
startActivity(mainIntent);
}
return true;
}
}