Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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
Android 确定通知面板是否可见_Android - Fatal编程技术网

Android 确定通知面板是否可见

Android 确定通知面板是否可见,android,Android,我正在我的应用程序中实现youtube风格的状态栏行为。 状态栏通常是隐藏的,当用户按下按钮时,状态栏出现,然后在2秒钟后消失: public void displayStatusBarTimed(){ // Show status bar getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); new Handler().postDelayed(new Runnable() {

我正在我的应用程序中实现youtube风格的状态栏行为。 状态栏通常是隐藏的,当用户按下按钮时,状态栏出现,然后在2秒钟后消失:

public void displayStatusBarTimed(){

    // Show status bar
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
    }, 2000);

}
我遇到的问题是,当通知面板从状态栏中展开下拉面板时,它会在2秒钟后与状态栏一起清除。 我怎样才能防止这种情况? 我做了一些测试,发现当面板可见时,不会调用onPause。 我还没有找到检查面板是否可见的方法。 我想在面板关闭后启动2秒计时器。。。 非常感谢您的帮助

如中所示,您应该覆盖onWindowFocusChangedboolean hasFocus:

private final Handler mDecorHandler = new Handler();

@Override
public void onWindowFocusChanged(boolean hasFocus) {
   if (!hasFocus) {
       // Remove any pending messages/runnables
       mDecorHandler.removeCallbacksAndMessages(null);
   } else {
       mDecorHandler.post(...)
   }
}