Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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_Listener_Event Listener - Fatal编程技术网

Android 停止侦听更多侦听器事件

Android 停止侦听更多侦听器事件,android,listener,event-listener,Android,Listener,Event Listener,我听的是onGlobalLayoutListener,如下面的代码所示。我只想听一次。 一旦调用了onGlobalLayout(),我想停止听它 我尝试使用removeOnGlobalLayoutListener()方法,但该方法会发出警告,调用所需的API级别16(当前最小值为14) 我还尝试使用了removeglobalonlyoutliner。但它已被弃用 代码: searchWebView.getViewTreeObserver().addOnGlobalLayoutListener(

我听的是
onGlobalLayoutListener
,如下面的代码所示。我只想听一次。 一旦调用了
onGlobalLayout()
,我想停止听它

我尝试使用
removeOnGlobalLayoutListener()
方法,但该方法会发出警告,调用所需的API级别16(当前最小值为14)

我还尝试使用了
removeglobalonlyoutliner
。但它已被弃用

代码:

searchWebView.getViewTreeObserver().addOnGlobalLayoutListener(
                        new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {

        // Do something
        // Remove listener
    }
});
如何删除onGlobalLayoutListener

编辑:

searchWebView.getViewTreeObserver().addOnGlobalLayoutListener(
                        new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {

        // Do something
        // Remove listener
    }
});

您可以使用以下代码删除
OnGlobalLayoutListener
。在
RemoveGlobalOnlyOutliner()
上仍将有一个已弃用的
删除线。但是,lint警告将通过使用注释来处理

@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
searchWebView.getViewTreeObserver().addOnGlobalLayoutListener(
                    new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {

        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
                searchWebView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            } else {
                searchWebView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            }

    }
});

阅读此线程[ViewTreeObserver][1]:@strike,它给出了相同的错误。查看我编辑的问题的图片。第一个被认为是不推荐的,因此越过了它的界限。第二个是在16级中添加的,而我的是14级。你知道为什么
removeglobalonlyoutliner()
方法的上方还有一条黑线吗?当这个方法停止工作时,它不会引起问题。android不再支持它。?@Akash这是eclipse显示代码中正在使用不推荐的方法的方式。对于所有密集型用途,以这种方式使用不推荐的方法是正确的<代码>此方法停止工作时不会导致问题。android不再支持它。?
。否。该方法调用将针对支持它的API版本进行。android并没有从旧的API中删除功能。它在新的API版本中添加了新的(可能更好的)特性。旧的API保持不变。如果说有什么不同的话,那就是android发布的所有
compat库都会让它们变得更好!(很抱歉,无法抗拒!)@RussWheeler
出于所有目的。。这使。。所以很更多感觉谢天谢地,一般来说我都不知道鸡蛋粒:)不用担心@Vikram。多听些鸡眼,生活会更有趣:)