2016-07-04 5 views
0

私はViewTreeObserverを使って描画されたスクロールやレイアウトなどのViewイベントをリッスンするアプリケーションに取り組んでいます。 ViewTreeObserverには何かをする前に生きているかどうかをチェックするメソッドがあります。リスナーを追加します。Android ViewTreeObserverはどれくらいの期間生きていますか?

私のコードが本番環境でうまく動作しているかどうかを確認するには、ViewTreeObserverの問題を再現する必要があります。私はそれを再現するためにアンドロイドのドキュメントに何も表示されません。

私はどんなヘルプ/ポインタもありがとうございます。

おかげで実際に

答えて

0

あなたはクラスViewTreeObserverのソースコードをチェックすると、、、ここでしかも、falseにmAliveを設定する機能を「殺す」しかし、それが呼び出されることはありませんがあります。

  1. あなたが取り外さ:私の意見では

    /** 
    * Marks this ViewTreeObserver as not alive. After invoking this method, invoking 
    * any other method but {@link #isAlive()} and {@link #kill()} will throw an Exception. 
    * 
    * @hide 
    */ 
    private void kill() { 
        mAlive = false; 
    } 
    

    、この観察者が使用できなくなります後(しかし、非生きていない、あなたは現在の観察者の状態を判断するためのisAlive()を使用することができませんでした)リスナー( など)。viewViewTreeObserver()。removeOnGlobalLayoutListener(this);

  2. ビューを含む現在の活動は、

が破壊されます