Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我希望在用户单击“主页”按钮时停止声音,而不是在调用新的内容视图时停止声音_Java_Android_Eclipse_Adt - Fatal编程技术网

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

每当按下home按钮和调用setContentView时,都会调用onStop方法和onPause方法。我想能够区分这两种情况,当按下home按钮时,声音停止,当设置新视图时,声音继续。我是java的新手,但我已经搜索了很长时间,找不到解决方案

@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方法,因此仍然无法确定我是单击了“主页”按钮还是启动了新的活动:((((