因此,有一个 5 秒的启动屏幕,但底部还有一个跳过
按钮。这就是启动画面的运行方式。
public class Splash extends Activity implements View.OnClickListener {
MediaPlayer splashsong;
Button skipsplash;
@Override
protected void onCreate(Bundle chiefsplash) {
// TODO Auto-generated method stub
super.onCreate(chiefsplash);
setContentView(R.layout.splash);
splashsong = MediaPlayer.create(Splash.this, R.raw.jingle);
splashsong.start();
skipsplash = (Button) findViewById(R.id.skipsplash);
skipsplash.setOnClickListener(this);
Thread splashtimer = new Thread() {
public void run() {
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
switchactivity();
}
}
};
splashtimer.start();
}
@Override
public void onClick(View skipbutton) {
switchactivity();
}
private void switchactivity() {
Intent aftersplash = new Intent("com.example.testapp.MENU");
startActivity(aftersplash);
}
@Override
protected void onPause() {
super.onPause();
splashsong.release();
finish();
}
}
现在我希望有一个选择可以点击skip
按钮来中断5秒的等待,我想不是在线程运行时。那么,当我点击 skip
按钮后会发生什么:一旦 Activity
创建后 5 秒过去,它将打开 Menu
Activity
,无论我是否已经在那里或其他地方。无论如何要阻止这一切吗?
最佳答案
您是否尝试使用处理程序
Handler h = new Handler();
h.postDelayed(runnable, delayMillis);
在runnable的run方法中调用switchactivity()。 在 onClick() 中删除该可运行的所有回调
h.removeCallbacks(runnable);
关于java - 如何在 Activity onPause 时停止线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16247571/