Java 我希望在用户单击“主页”按钮时停止声音,而不是在调用新的内容视图时停止声音
每当按下home按钮和调用setContentView时,都会调用onStop方法和onPause方法。我想能够区分这两种情况,当按下home按钮时,声音停止,当设置新视图时,声音继续。我是java的新手,但我已经搜索了很长时间,找不到解决方案Java 我希望在用户单击“主页”按钮时停止声音,而不是在调用新的内容视图时停止声音,java,android,eclipse,adt,Java,Android,Eclipse,Adt,每当按下home按钮和调用setContentView时,都会调用onStop方法和onPause方法。我想能够区分这两种情况,当按下home按钮时,声音停止,当设置新视图时,声音继续。我是java的新手,但我已经搜索了很长时间,找不到解决方案 @Override protected void onResume() { super.onResume(); if (btnSound.isChecked()){ snd.start(); } } @Overr
@Override
protected void onResume() {
super.onResume();
if (btnSound.isChecked()){
snd.start();
}
}
@Override
protected void onStop() {
super.onStop();
snd.pause();
}
好的,为了回答您的问题,onResume()和onStop()调用之间的时间间隔可能非常窄,以至于您无法区分。您可以尝试以下方法:
@Override
protected void onPause() {
super.onPause();
snd.start(); // Sound start
// SLEEP 2 SECONDS HERE ...
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
snd.pause();
}
}, 2000);
}
谢谢,但是您提供的代码会等待2秒钟,然后暂停“主页”按钮上的声音并设置新的内容视图。我正在寻找一种解决方案来区分“主页”按钮单击和切换到新的内容视图。似乎无论我是单击“主页”按钮还是启动新的内容视图,都会调用onPause和onStop方法,因此仍然无法确定我是单击了“主页”按钮还是启动了新的活动:((((